С подходом, что вы делаете, как вы должны делать это проверка, чтобы увидеть, если ключ уже существует, используя ключевое слово in
. Если он затем сделать свой прирост, в противном случае просто назначить 1. как это:
wordcount = {}
text = ["this", "is", "my", "sentence", "yes", "it", "is", "my", "stuff"]
for word in text:
if word in wordcount:
wordcount[word] += 1
else:
wordcount[word] = 1
print(wordcount)
# {'yes': 1, 'stuff': 1, 'sentence': 1, 'my': 2, 'is': 2, 'this': 1, 'it': 1}
За ваши комментарии, вы можете избежать этого условия, если вы на самом деле использовать defaultdict
из модуля collections
(documentation). Вы просто устанавливаете значение default
для своих словарных статей и продолжаете работу с вашим +=
. Пример:
from collections import defaultdict
my_dict = defaultdict(int)
text_list = ["this", "is", "my", "sentence", "yes", "it", "is", "my", "stuff"]
for text in text_list:
my_dict[text] += 1
print(my_dict)
# defaultdict(<class 'int'>, {'sentence': 1, 'this': 1, 'is': 2, 'my': 2, 'yes': 1, 'it': 1, 'stuff': 1})
Теперь, если вы просто пытаетесь считать слова в тексте, то есть что-то встроенный, чтобы сделать это уже для вас называется Counter
из модуля collections
(documentation). Это будет содержать количество всех подобных элементов. Обратите внимание на пример:
from collections import Counter
text = ["this", "is", "my", "sentence", "yes", "it", "is", "my", "stuff"]
my_count_dict = Counter(text)
print(my_count_dict)
Counter({'my': 2, 'is': 2, 'stuff': 1, 'this': 1, 'it': 1, 'sentence': 1, 'yes': 1})
Обращайте внимание на выходные данные как на порядок чаще всего. Если вам нужно, чтобы получить наиболее общее слово, называют most_common
на нем:
print(my_count_dict.most_common(1))
# [('my', 2)]
Вы можете использовать либо defaultdict (INT), чтобы создать свой словарь или использовать WordCount [слово] = wordcount.get (слово, 0) + 1. –
начать с того, ' wordcount [слово] + = 1' делает без стенограммы – woozyking
Если вы не хотите, чтобы другой пользователь ответил на ваш вопрос, помогите им понять вашу проблему. Ваш вопрос рассматривает использование языка python, поэтому, пожалуйста, пройдите мимо вашего кода на Python. Легче сказать, что не так, просто глядя на код, пытаясь понять, что было целью автора. – IOR88