如何获取字典值中所有元素的数量,其中value是一个列表,给出int数字python

时间:2013-05-29 08:54:04

标签: python

我有一个字典,其中值是列表,我想知道与每个键关联的列表中有多少元素。我在这里找到了这个。但我只需要一个键的元素总数。例如

>>> from collections import Counter
>>> my_dict = {'I': [23,24,23,23,24], 'P': [17,23,23,17,24,12]}
>>> {k: Counter(v) for k, v in my_dict.items()}
{'P': Counter({17: 2, 23: 2, 24: 1, 12: 1}), 'I': Counter({23: 3, 24: 2})}

例如{P:6},如果只提供数字count_elements=5

会更好

3 个答案:

答案 0 :(得分:2)

>>> my_dict= {'I':[23,24,23,23,24],'P':[17,23,23,17,24,12]}
>>> {k: len(v) for k, v in my_dict.items()}
{'I': 5, 'P': 6}

单个键很简单:

>>> len(my_dict['P'])
6

正如@Joe建议len(my_dict.get(key, []))在密钥不存在时工作,这可能有效,但是你无法区分具有空列表的密钥和不存在的密钥。在这种情况下,你可以抓住KeyError

答案 1 :(得分:2)

这将获得给定键key的值数。我相信这就是问题所在。

my_dict= {"I":[23,24,23,23,24],"P":[17,23,23,17,24,12]}
number = len(my_dict.get(key, []))

答案 2 :(得分:1)

这是你的想法吗?

my_dict= {'I':[23,24,23,23,24],'P':[17,23,23,17,24,12]}
print {k:len(v) for k, v in my_dict.items()}
{'I': 5, 'P': 6}