在Python字典中计算不同键的数量

317 投票
6 回答
641179 浏览
提问于 2025-04-15 18:57

我有一个字典,这个字典把关键词和它们出现的次数对应起来,但我只想要一个不重复的单词列表,所以我想统计一下关键词的数量。有没有什么方法可以计算关键词的数量,或者有没有其他方法可以找到不重复的单词呢?

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

撰写回答