Python:计算字典中的特定事件

时间:2016-08-03 10:33:20

标签: python dictionary find-occurrences

说我有这样的字典:

d={
'0101001':(1,0.0), 
'0101002':(2,0.0),
'0101003':(3,0.5),
'0103001':(1,0.0),
'0103002':(2,0.9),
'0103003':(3,0.4),
'0105001':(1,0.0),
'0105002':(2,1.0),
'0105003':(3,0.0)}

考虑到每个键的前四位数构成元素“槽”的标识符(例如,'0101','0103','0105'),我如何计算{{1}的出现次数每个插槽?

预期结果是这样的字典:

0.0

抱歉因为我不知道如何做到这一点而无法提供我的尝试。

2 个答案:

答案 0 :(得分:3)

使用Counter,如果值正是您要查找的值,请添加密钥的前四位数字:

from collections import Counter

counts = Counter()

for key, value in d.items():
    if value[1] == 0.0:
        counts[key[:4]] += 1

print counts

答案 1 :(得分:2)

您可以使用defaultdict

from _collections import defaultdict

res = defaultdict(int)
for k in d:
    if d[k][1] == 0.0:
        res[k[:4]] += 1

print(dict(res))

执行+=1时,如果密钥不存在,则会使用值0创建密钥,然后执行操作。