python效率:计算dict中的键出现次数

时间:2017-01-19 21:24:42

标签: python

尝试获取dict键的唯一值及其在list中出现的次数。这有效,但感觉很笨拙:

a = [ {'pid': 1 }, {'pid': 1}, {'pid': 1}, {'pid': 2}, {'pid': 2}, {'pid': 3} ]
b = { x['pid']: len([f for f in a if f['pid'] == x['pid']]) for x in a }
b

产量:

{1: 3, 2: 2, 3: 1}

有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

是的,有。使用collections.Counter

from collections import Counter

c = Counter(d['pid'] for d in a)
print(c)
# Counter({1: 3, 2: 2, 3: 1})