En utilisant Python, j'essaye de convertir une phrase de mots en une liste plate de toutes les lettres distinctes dans cette phrase.Comment passer d'une liste de mots à une liste de lettres distinctes en Python
Voici mon code actuel:
words = 'She sells seashells by the seashore'
ltr = []
# Convert the string that is "words" to a list of its component words
word_list = [x.strip().lower() for x in words.split(' ')]
# Now convert the list of component words to a distinct list of
# all letters encountered.
for word in word_list:
for c in word:
if c not in ltr:
ltr.append(c)
print ltr
Ce code renvoie ['s', 'h', 'e', 'l', 'a', 'b', 'y', 't', 'o', 'r']
, ce qui est correct, mais est-il un moyen plus Pythonic à cette réponse, probablement à l'aide de la liste compréhensions/set
?
Lorsque j'essaie de combiner l'imbrication et le filtrage de la liste, j'obtiens des listes de listes au lieu d'une liste à plat.
L'ordre des lettres distinctes dans la liste finale (ltr
) n'est pas important; Ce qui est crucial, c'est qu'ils soient uniques.
+1 pour une question bien formulée et y compris votre tentative (quel spectacle de bienvenue!) – bernie
Notez que 'defaults str.split' pour le fractionnement sur les espaces, donc' .split (» ') 'est généralement orthographié' .split() '. –