self.dl = ({'a':1, 'b': 2, 'c': 3}, {'c':13, 'd':14, 'e':15}, {'e':25, 'f':26, 'g':27})


我有这个字典元组,正在尝试获取所有不同键的数量。我只能这样做,以便计算所有键。这里的输出应该是7,但我得到9,因为c和e被计数了两次。

到目前为止,我有:

new = []
for d in self.dl:
    for k in d:
        new.append(k)
return len(new)

最佳答案

from operator import or_ as union
from functools import reduce

len(reduce(union, map(dict.keys, self.dl)))


keys()返回的视图已经像集合一样。因此,如果您从字典中获取所有键集的并集(or_),则将获得所有键集。该集合的长度是唯一键的数量。

关于python - 如何在不包含已经看到的键的情况下返回字典列表中不同键的数量的长度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50403406/

10-13 06:31