我想找出 75 个文本中“je”和“nous”这两个词的出现频率。
其实我知道怎么通过导入os等一次性制作频率列表。但这一次,我需要的,只是两个词各自的频率。
我尝试更改制作频率列表的代码以实现我的目标,但失败了。
这是我的代码的一部分:
wordlist_freq={}
for word in all_words:
if word in wordlist_freq.keys():
wordlist_freq[word] +=1
else:
wordlist_freq[word] =1
freq = {}
freq['je']=wordlist_freq['je']
freq['nous']=wordlist_freq['nous']
output[name]=wordlist_freq.items()
它显示了一个 KeyError: 'je'
我真的无法理解,我现在的想法太愚蠢了,因为我想制作一个频率列表,然后额外添加“je”和“nous”的频率。应该有一些更简单的解决方案!!!
请帮帮我~谢谢!!!
答案 0 :(得分:2)
您可以为此使用集合中的计数器
from collections import Counter
word_list = ["hi", "hi", "je", "nous", "hi", "je", "je"]
wordlist_freq = Counter(word_list)
为了得到一个词的频率,你可以使用这样的get方法
wordlist_freq.get("je", 0)
我更喜欢使用 get 而不是方括号,因为当 Counter 对象中不存在该单词时,get 可以返回一个默认值。
如果您选择不使用 Counter 并想使用您在 Q 中共享的循环,您仍然可以这样做。但请确保您在 dict 上使用 get
方法来处理该词不在 dict 中的情况。