Мне нужно найти дубликаты в моем txt-файле. Файл выглядит следующим образом:Сортировка для дубликатов в файле из 33 000 строк
3,3090,21,f,2,3
4,231,22,m,2,3
5,9427,13,f,2,2
6,9942,7,m,2,3
7,6802,33,f,3,2
8,8579,11,f,2,4
9,8598,11,f,2,4
10,16729,23,m,1,1
11,8472,11,f,3,4
12,10976,21,f,3,3
13,2870,21,f,2,3
14,12032,10,f,3,4
15,16999,13,m,2,2
16,570,7,f,2,3
17,8485,11,f,2,4
18,8728,11,f,3,4
19,20861,9,f,2,2
20,19771,34,f,2,2
21,17964,10,f,2,2
Существует ~ 30000 строк этого. И теперь мне нужно найти дубликаты во втором столбце и сохранить их в новых файлах без дубликатов. Мой код:
def dedupe(data):
d = []
for l in lines:
if l[0] in d:
d[l[0]] += l[:1]
else:
d[l[0]] = l[1]
return d
#m - male
#f - female
data = open('plec.txt', 'r')
save_m = open('plec_m.txt', 'w')
save_f = open('plec_f.txt', 'w')
lines = data.readlines()[1:]
for line in lines:
gender = line.strip().split(',')[3]
if gender is 'f':
dedupe(line)
save_f.write(line)
elif gender is 'm':
dedupe(line)
save_m.write(line)
Но я получаю эту ошибку:
Traceback (most recent call last):
File "plec.py", line 88, in <module>
dedupe(line)
File "plec.py", line 75, in dedupe
d[l[0]] = l[1]
TypeError: list indices must be integers, not str'
Работает ли это? Если нет, какая у вас проблема? – SuperBiasedMan
Поиск дубликатов не работает. Сохранение файла «женщина-файл» и «мужчина-файл» в порядке. Но алгоритм поиска дубликатов не работает. – Fempter
Какой результат вы получаете? «Не работает» может означать, что файл пуст или что он имеет каждую строку или что он сбой. – SuperBiasedMan