У меня есть список списков в 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}
Предыдущее сообщение для справки:
Простая синтаксическая ошибка в Python, если в противном случае понимается dict
Как было сказано выше, я также использовал следующий код:
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
Вышеприведенный код был успешным при создании пустых списков, но в итоге бросил следующую трассировку:
[]
[]
[]
[]
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]
Это выполнялось без какой-либо ошибки, но вывод был пустым списком.