问题描述
假设我有一个称为单词的单词列表,即单词= [“ hello”,“ test”,“ string”,“ people”,“ hello”,“ hello”],并且我想创建一个字典以获取单词频率。
假设字典被称为“计数”
counts = {}
for w in words:
counts[w] = counts.get(w,0) + 1
我唯一不真正了解的部分是counts.get(w.0)。 这本书说,通常您会使用counts [w] = counts [w] + 1,但是第一次遇到新单词时,它不会出现在counts中,因此会返回运行时错误。 一切都很好,但counts.get(w,0)到底是做什么的? 具体来说,(w,0)表示法是什么?
1楼
如果您有字典,则get()
是一种方法,其中w
是保存要查找的单词的变量,而0
是默认值。
如果字典中不存在w
,则get
返回0
。
2楼
FWIW,在Python 2.7及更高版本中,您可能更喜欢对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})
3楼
如果键不存在,则字典的get()
方法允许使用默认值作为第二个参数。
所以counts.get(w,0)
给你0
,如果w
中不存在counts
。
4楼
字典上的get
方法返回存储在键中的值,或者返回由可选的第二个参数指定的默认值。
在您的情况下,您告诉它“如果该键尚未在字典中,则检索0作为先前的计数,然后将其添加到该值并将其放在字典中。”