1

我有一个字典,其中的值是列表,我想计算每个项目在与每个键关联的列表中出现的次数。例如: 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)

我在这里找到了,但没有成功,因为这些值是列表,所以是不可散列的。我一直在摆弄 collections.Counter 和字典的结构一段时间,但似乎没有任何效果。我在网上找到的所有解决方案都是针对每个键一个值的字典,以及整个字典中的重复项,而不是每个键。

4

2 回答 2

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})}
于 2012-08-08T10:51:26.437 回答
0
counts = {k:Counter(v) for (k,v) in my_dict.items()}
于 2012-08-08T10:52:49.040 回答