Ich habe eine Textdatei mit dem Namen test.txt
. Ich möchte es lesen und eine Liste aller Wörter (mit entfernten Zeilenumbrüchen) aus der Datei zurückgeben.
Dies ist mein aktueller Code:
%Vor%Durch Ausführen dieses Codes wird diese Liste erstellt:
%Vor%Ich möchte, dass die Liste so aussieht:
%Vor% Ersetzen Sie die Zeile words_list.append(...)
in der for-Schleife durch Folgendes:
Dadurch wird jede Zeile in Whitespace-Zeichen aufgeteilt und anschließend jedes Element der resultierenden Liste zu words_list
hinzugefügt.
Oder als eine alternative Methode zum Umschreiben der gesamten Funktion als Listenverständnis:
%Vor%So würde ich das schreiben:
%Vor% Die Funktion kann etwas verkürzt werden, indem man itertools
verwendet, aber ich persönlich finde das Ergebnis weniger lesbar:
Das Schöne an der zweiten Version ist, dass sie vollständig generatorbasiert sein kann und somit verhindert, dass alle Wörter der Datei gleichzeitig im Speicher bleiben.
Es gibt mehrere Möglichkeiten, dies zu tun. Hier sind ein paar:
Wenn Ihnen wiederholte Wörter egal sind :
%Vor%Wenn Sie eine Liste von Wörtern zurückgeben möchten, in denen jedes Wort nur einmal angezeigt wird :
Hinweis: Dadurch wird die Reihenfolge der Wörter nicht beibehalten.
%Vor%Wenn Sie eine Menge möchten --und-- wollen Sie die Reihenfolge der Wörter beibehalten :
%Vor%Wenn Sie ein Wörterbuch mit Worthäufigkeiten möchten :
%Vor%Ich hoffe, diese Hilfe