You может писать сжатый код, но что более важно Вам не нужно, чтобы создать два набора, вы можете использовать set.intersection
, который позволит вашему коду работать для больших наборов данных и работать быстрее:
with open('/home/user1/file1.txt') as f1, open('/home/user1/file2.txt') as f2:
for line in set(map(str.rstrip,f2)).intersection(map(str.rstrip,f2))):
print(line)
Для использования python2 itertools.imap
:
from itertools import imap
with open('/home/user1/file1.txt') as f1, open('/home/user1/file2.txt') as f2:
for line in set(imap(str.rstrip,f2)).intersection(imap(str.rstrip(f2))):
print(line)
Вы создать один набор, который затем добавляется к итерации по итерируемому переданному, т. е. str.rstripped строк файла2, так как он создает два полных набора строк, а затем выполняет пересечение.
На каких языках представлены файлы? И каково ваше определение слова? –
Повторяющиеся слова или строки? –
Эти файлы содержат одно слово в одной строке? –