Donc, je lis dans un fichier TXT à Python et souhaitez obtenir une liste de tous les mots du fichier. Je le fais de cette méthode par cette méthode. au lieu de tous les mots de retour des mots réels Il renvoie une liste de caractères simples tels que Mais lorsque le débogage, je peux voir que le mot variable est un mot réel et pas seulement des caractères. Où est-ce que je me trompe ici? P> p> ['A', 'B'] < / Code> et ainsi de suite. P>
4 Réponses :
Essayez ceci:
def parse_in(file_location, input_name): all_words = [] with open(file_location + input_name,'r') as f: for line in f: all_words += line.split() return all_words
Utilisez au lieu de p> si vous utilisez Vous pouvez également utiliser + = code> alors
mot
/ Code> est traité comme une séquence, les caractères individuels sont donc appliqués à la liste. P>
+ = code> et simplifier votre boucle à: p>
Utiliser all_words + = Word code> étend la liste
all_words code> avec les éléments dans
mot code>. Comme
Word code> est une chaîne, les caractères sont ajoutés, comme si vous aviez itéré à celui-ci avec
pour code>. P>
all_words.append (Word) code> pour ajouter le mot à la liste des mots. P>
Si vous utilisez le gestionnaire de contexte, vous n'avez pas besoin de fermer le fichier et que la simplicité, vous pouvez simplement lire un fichier complet et simplement utiliser la méthode SPLIT
def parse_in(file_location, input_name): all_words = [] with open(file_location + input_name,'r') as f: all_words = f.read().split() return all_words
f.close code> ne fait rien. Votre ajout d'une séquence (chaîne) à une autre séquence (une liste), vous obtenez donc une séquence la combinaison des deux séquences. Utilisez
list.append code>.