在python中计算字典中的关键字数量

Dan*_*Dan 212 python dictionary count keyword

我在字典中有一个单词列表,其值为=关键字的重复,但我只想要一个不同单词的列表,所以我想计算关键字的数量.有没有办法计算关键字的数量,还是有另一种方法我应该寻找不同的单词?

YOU*_*YOU 371

len(yourdict.keys())
Run Code Online (Sandbox Code Playgroud)

要不就

len(yourdict)
Run Code Online (Sandbox Code Playgroud)

如果您想计算文件中的唯一单词,您可以使用set并执行类似操作

len(set(open(yourdictfile).read().split()))
Run Code Online (Sandbox Code Playgroud)

  • 我知道这篇文章很老,但我很好奇.这是最快的方法吗?或者:对于大型词典来说,这是一个相当快速的方法吗? (4认同)
  • 我想请注意,你也可以用`len(yourdict.values())来获取值(我知道这个问题没有问过) (4认同)
  • len(yourdict.keys())和len(yourdict)均为O(1)。后者要快一些。请参阅下面的测试。 (2认同)

ken*_*ytm 28

可以使用该len()函数找到不同单词的数量(即字典中的条目数).

> a = {'foo':42, 'bar':69}
> len(a)
2
Run Code Online (Sandbox Code Playgroud)

要获取所有不同的单词(即键),请使用该.keys()方法.

> list(a.keys())
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)


Und*_*lin 8

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)
Run Code Online (Sandbox Code Playgroud)