2016-06-06 2 views
1

Im пытается создать функцию, которая читает каждую строку в файле и сравнивает слова с их обратной (палиндром) версией i.e > (heheh = heheh) & (law = wal). Поэтому, когда я попытался сделать это, условие завершилось неудачно, и функция вернула пустой список.Python - Читать и сравнивать

КОД

def palindrome_lst(): 
    lst = [] 
    with open("words.txt", "r") as f: 
     for line in f: 
      if line == line[::-1]: 
       lst.append(line) 
    return lst 

print palindrome_lst() 
+0

Вы хотите сравнить слова или строки? Вы упомянули, что хотите сравнить слова, но вы сравниваете всю линию. –

+1

Можете ли вы также опубликовать входной файл? – SilentMonk

+0

@SilentMonk его только некоторые случайные слова Bro: EFe SEFE wefew Лала лол дож приходят НАП Blackwolf волк wolw volv Volvo jebote etobej Kurwa awruk –

ответ

6

Когда итерация строк в файле, вы получаете линейку терминатор вместе с остальной частью линии. Id est, вы не сравниваете "eye" == "eye", но "eye\n" == "\neye", что, конечно, ложно для всех слов.

Попробуйте добавить line = line.strip() перед сравнением.

+0

Вы спасли день bro: D hhhhh –

Смежные вопросы