нужна помощь, чтобы найти дубликат элемента в списке в python - PullRequest
1 голос
/ 30 марта 2020
import csv
import re
from collections import Counter
with open('articles.txt',encoding="ANSI") as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
author = []
#publication = []
#for row in csv_reader:
    #publication += [[row[3]]]
for row in csv_reader:
    author += [[row[4]]]
count = 0
NPR_list=[]
for number in range(1,len(new_file)):
    if 'NPR'== str(new_file[number][3]):
       NPR_list.append(author[number])
       count+= 1
for remove in range(1,273):
    NPR_list.remove([''])
list(NPR_list)     
print(NPR_list)
Counter(NPR_list).mostcommon(5)

Будет выдано сообщение об ошибке: TypeError: unhashable type: 'list' Как мне изменить код, чтобы он возвращал первые 5 повторяющихся элементов? Спасибо

1 Ответ

0 голосов
/ 02 апреля 2020

ваша ошибка из-за того, что ваша author переменная представляет собой список списков, вот пример:

from collections import Counter

Counter([[1], [2]])

вывод:

TypeError: unhashable type: 'list'

вам не нужно хранить в элементах author в виде списков вы должны изменить эту строку: author += [[row[4]]] с author += [row[4]] или author.append(row[4])

...