Die Zeile einer Textdatei in der alle Elemente einer Liste vorhanden sind ausgeben lassen?
Guten Abend,
ich habe eine Porgramm welches ein Textdokument mit einem langen Text (als String) in eine Liste einliest.
In einer anderen Liste können nun bestimmte Wörter als einzelne Elemente enthalten sein.
Bsp.
liste_woerter = ["war","hier","haben"]
Nun würde ich gerne nur die Zeilen der Liste mit dem Textdokument ausgeben, in denen ALLE diese drei Wörter vorhanden sind.
Mit meinem jetztigen Programm, lässt sich immer nur ein Wort abfragen. Dieses sieht akutell in etwa so aus:
for zeile in datei:
datei += [zeile.strip()] #hier wird die Liste des Textes der Datei (als String) erstellt
if liste_woerter[0] in zeile: #hier wird überprüft, ob das erste Element in einer Zeile vorkommt
print(zeile) #in dem Fall werden alle Zeilen in dem ein "war" vorkommt ausgegeben
Nun will ich -wie gesagt-, dass nicht alle Zeilen wo das "war" drinne steht ausgegeben werden, sonder NUR die Zeilen wo "war", "hier" UND "haben" (alle drei) drinne stehen.
Vielen Dank im Voraus!
Es geht um die Programmiersprache Python
1 Antwort
Du darfst dich halt nicht auf die Prüfung des ersten Listeneintrags beschränken.
Eine separate Funktion wäre angemessen.
def line_includes_words(line, words):
for word in words:
if word not in line:
return False
return True
Die wird dann in der Schleife eingesetzt.
words = [ "war", "hier", "haben" ]
for line in lines:
if line_includes_words(line, words):
# do something ...