在Python字典中计算不同键的数量
我有一个字典,这个字典把关键词和它们出现的次数对应起来,但我只想要一个不重复的单词列表,所以我想统计一下关键词的数量。有没有什么方法可以计算关键词的数量,或者有没有其他方法可以找到不重复的单词呢?
6 个回答
13
直接对你的字典使用 len()
是可以的,而且比先创建一个迭代器 d.keys()
然后再对它调用 len()
要快。不过,这两者的速度差别在你的程序其他操作面前几乎可以忽略不计。
d = {x: x**2 for x in range(1000)}
len(d)
# 1000
len(d.keys())
# 1000
%timeit len(d)
# 41.9 ns ± 0.244 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit len(d.keys())
# 83.3 ns ± 0.41 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
38
要找出不同的单词数量(也就是字典里有多少个不同的条目),可以用 len()
这个函数。
> a = {'foo':42, 'bar':69}
> len(a)
2
如果想要获取所有不同的单词(也就是字典里的键),可以使用 .keys()
这个方法。
> list(a.keys())
['foo', 'bar']
553
len(yourdict.keys())
或者直接
len(yourdict)
如果你想统计文件中独特的单词,可以直接使用 set
,这样做就可以了
len(set(open(yourdictfile).read().split()))