Я предполагаю, что отступ правилен в вашем коде. Продолжая свою стратегию, этот код должен работать.
def compareLists(self, listA, listB):
sameWords = list()
for a in xrange(0,len(listA)):
for b in xrange(0,len(listB)):
if listA[a] == listB[b]:
sameWords.append(listA[a])
return sameWords
В качестве альтернативы, как предложил Эффералган, просто установите пересечение.
def compareLists(self, listA, listB):
return list(set(listA) & set(listB))
Примечание: Множество пересечений будет удалить дубликаты подходящих слов из вашего результата.
Как вы сказали, вы читаете строки из текстового файла, и похоже, что строки новой строки все еще там.
my_text_list = [s for s in open("my_text.txt").read().rsplit()]
Вы пробовали отладчик? Вы можете легко наблюдать, какие значения listA или listB имеют на каждом этапе итерации. – Rockbar
Вы смотрите на заданную операцию пересечения. –
'list (setA) & set (listB))' вернет именно то, что вы хотите, как показано [здесь] (http://stackoverflow.com/questions/642763/python-intersection-of-two-lists) , – Efferalgan