Дан файл file.txt
, состоящий из миллиардов символов.
Проблема:
Считайте файл и для каждого фрагмента 6 уникальных символов в файле и сопоставьте строку всех возможных 6 буквенных фрагментов уникальных символов с уникальным значение.
Вот мой код
with open("file.txt") as file1:
string = ''.join(file1.readlines())
unique_dict = {}
i=0
while i <= len(string)-6:
if len(set(string[i:i+6])) == len(string[i:i+6]):
if string[i:i+6] in unique_dict.values():
pass
else:
unique_dict[i] = string[i:i+6]
i = i+5
i += 1
print(unique_dict)
И file.txt
содержит
abcdefghijkabcdef
Вместо миллиардов символов Я взял минимум символов для понимания цели.
Вот вывод:
{0: 'abcdef', 6: 'ghijka'}
Есть ли другой эффективный способ сделать это меньше сравнений?