У меня есть список списков в python, полный текстов. Это похоже на заданные слова из каждого документа. Поэтому для каждого документа у меня есть список, а затем список для всех документов.Как я могу подсчитать появление каждого слова в документе, используя понимание словаря
Весь список содержит только уникальные слова. Моя цель - подсчитать количество каждого слова в полном документе. Я могу сделать это успешно, используя код ниже:
for x in texts_list:
for l in x:
if l in term_appearance:
term_appearance[l] += 1
else:
term_appearance[l] = 1
Но я хочу использовать словарь понимание, чтобы сделать то же самое. Это первый раз, когда я пытаюсь писать словарь понимание и использование ранее существующих постов в StackOverflow, я смог написать следующее:
from collections import defaultdict
term_appearance = defaultdict(int)
{{term_appearance[l] : term_appearance[l] + 1 if l else term_appearance[l] : 1 for l in x} for x in texts_list}
Предыдущая запись для справки:
Simple syntax error in Python if else dict comprehension
Как говорился в посте выше, я также использовал следующий код:
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
Приведенных выше код был успешным в пре oducing пустых списков, но в конечном счете бросил следующее отслеживающее:
[]
[]
[]
[]
Traceback (most recent call last):
File "term_count_fltr.py", line 28, in <module>
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
File "term_count_fltr.py", line 28, in <setcomp>
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
TypeError: unhashable type: 'dict'
Любой помощь в улучшении моего нынешнего понимания будет высоко ценится.
Глядя на выше ошибки, я также попытался
[{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list]
Это выбежала без каких-либо ошибок, но выход был только пустые списки.
Успехов ... Вот мысль, по умолчанию ДИКТ будет по умолчанию равно нулю, что означает, что вы, возможно, не потребуется, если, еще часть , – nehemiah