Я пытаюсь удалить дубликаты элементов из большого текстового файла, содержащего 250 миллионов элементов на 4,4 гигабайта.
Я был впечатлен, увидев, что могу загрузить этот файл в список Python всего за несколько минут с помощью следующего кода:
x = []
with open("online.txt") as file:
for l in file:
x.append(l)
print('count of array: ')
print(len(x))
Но когда я попытался просто проверить, чтобы убедиться, что следующий элемент не существует, прежде чем добавить его в массив, он занял много часов. Я чувствую, что упускаю что-то простое, что действительно ускорит это.
Вот код, который я использовал для проверки дубликатов:
a = []
x = []
with open("online.txt") as file:
for l in file:
if l in a:
print('duplicate')
print(l)
else:
x.append(l.strip())
a.append(l)
print('with duplicates: ');
print(len(a))
print('without duplicates: ')
print(len(x))
Он работает на сервере с 64 гигабайтами оперативной памяти и современными процессорами с двумя процессорами xeon.