计算字典中的值

时间:2012-08-08 10:49:57

标签: python list dictionary python-3.x

我有一个字典,其中值是列表,我想计算每个项目出现在与每个键相关联的列表中的次数。 例如:  my_dict= {10:[23,24,23,23,24],11:[17,23,23,17,24]} 会产生10:(23:3,24:2),11:(17:2,23:2,24:1)

我尝试过使用

from collections import Counter
counts = Counter((k, v) for k, v in my_dict.items())
print(counts)

我发现here,但没有成功,因为值是列表,所以不可用。我已经摆弄了collections.Counter和字典的结构了一段时间了,但似乎没有什么工作。我在网上找到的所有解决方案都是字典,每个键有一个值,整个字典中有重复,而不是每个键。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

counts = {k:Counter(v) for (k,v) in my_dict.items()}