python中的字频程序

假设我有一个名为单词的单词列表,即单词= [“hello”,“test”,“string”,“people”,“hello”,“hello”]我想创建一个字典以获得单词频率。 假设字典被称为'计数'
counts = {}
for w in words:
    counts[w] = counts.get(w,0) + 1
我真正理解的唯一部分是counts.get(w.0)。书中说,通常你会使用计数[w] =计数[w] + 1但是第一次遇到一个新单词时,它不会计数,因此会返回运行时错误。这一切都很好,花花公子但是究竟做什么count.get(w,0)呢?具体来说,(w,0)符号是什么?     
已邀请:
如果你有一本字典,
get()
是一种方法,其中
w
是一个变量,包含你正在查找的单词,
0
是默认值。如果词典中没有
w
,则
get
返回
0
。     
使用Python 2.7及更高版本的FWIW,您可能更喜欢使用
collections.Counter
,例如:
In []: from collections import Counter
In []: c= Counter(["hello", "test", "string", "people", "hello", "hello"])
In []: c
Out[]: Counter({'hello': 3, 'test': 1, 'people': 1, 'string': 1})
    
如果密钥不存在,字典
get()
方法允许将默认值作为第二个参数。所以
counts.get(w,0)
如果
counts
中不存在
w
则给你
0
。     
字典上的
get
方法返回存储在键中的值,或者可选地,返回由可选的第二个参数指定的默认值。在您的情况下,您告诉它“如果此键不在字典中,则为先前计数检索0,然后将该值添加一个并将其放入字典中。”     

要回复问题请先登录注册