python中的单词频率程序

时间:2011-03-08 17:18:10

标签: python dictionary word-frequency

假设我有一个名为单词的单词列表,即单词= [“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)符号是什么?

4 个答案:

答案 0 :(得分:6)

如果您有字典,get()是一种方法,其中w是一个变量,其中包含您正在查找的字词,0是默认值。如果字典中不存在w,则get会返回0

答案 1 :(得分:6)

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})

答案 2 :(得分:4)

如果密钥不存在,则字典get()方法允许将默认值作为第二个参数。因此,如果counts.get(w,0)中不存在0w会向您counts提供。{/ p>

答案 3 :(得分:0)

字典上的get方法返回存储在键中的值,或者可选地,返回由可选的第二个参数指定的默认值。在你的情况下,你告诉它“如果这个键不在字典中,则为前一个计数检索0,然后在该值中加一个并将其放在字典中。”