Добавить элементы списка к dict - PullRequest
1 голос
/ 28 сентября 2019

У меня есть случайный текстовый файл, и я хочу поместить все его слова в текст, потому что я должен их посчитать.

raw_data = open("ipsum.txt", "r").readlines()

data = []
word_dict = {

    'word' : 0

}

for lines in raw_data:

   lines = lines.strip('\n')
   data.append(lines.split(" "))


print(data)

for word in data:
    if word not in word_dict:
        word_dict[word] = 0

Но я всегда получаю следующее сообщение об ошибке:

  if word not in word_dict:
TypeError: unhashable type: 'list'

Я не знаю, как продолжить.

1 Ответ

3 голосов
/ 28 сентября 2019

Гораздо более простым и чистым решением было бы следующее:

file = open("ipsum.txt", "r")
wordcount={}
for word in file.read().split():
    if word not in wordcount:
        wordcount[word] = 1
    else:
        wordcount[word] += 1
for k,v in wordcount.items():
    print k,v

И более питонический способ был бы:

from collections import Counter
file = open("ipsum.txt", "r")
wordcount = Counter(file.read().split())

Вы также можете отсортировать их, используя

wordcount = sorted(wordcount.items(), key=lambda x:x[1], reverse=true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...