Ich muss eine TXT-Datei öffnen und sie durchlaufen, um nach einem Palindrom zu suchen. Meine Schleife durchläuft die Datei, gibt jedoch nichts zurück, obwohl ich weiß, dass die Datei Palindrome enthält. Es werden nur einige leere Klammern ausgedruckt, wenn ich es ausführe.

file = open("dictionary.txt", "r") 
lst = [] 
for word in file: 
    if(len(word) > 1 and word == word[::-1]): 
        lst = lst.append(word) 
    print(lst)
0
mfreeman 24 Feb. 2020 im 10:39

4 Antworten

Beste Antwort

Sie sollten strip Ihre Zeichenfolge. Darüber hinaus ändert append die ursprüngliche Liste und gibt None zurück.

file = open("dictionary.txt", "r") 
lst = [] 
for word in file:
    word=word.strip()
    if(len(word) > 1 and word == word[::-1]): 
        lst.append(word) 
print(lst)
1
Ahmad Farhan 24 Feb. 2020 im 07:58

Sie müssen den Inhalt der Datei einer Variablen zuweisen

var = file.read()
0
Quentaing 24 Feb. 2020 im 07:57

Sie hängen zwar korrekt an, erhalten aber den Rückgabewert der Append-Anweisung, was Unsinn ist.

Ersetzen Sie die folgende Zeile:

lst = lst.append(word)

Durch

lst.append(word)

Und das ist alles.

1
m.dorian 24 Feb. 2020 im 07:50

lst.append(word) hängt das Wort an list an und gibt nichts zurück. Ihr Code lst = lst.append(word) hängt das Wort an lst an und überschreibt es, indem er None zuweist, das von append zurückgegeben wird.

1
Gagan T K 24 Feb. 2020 im 07:46