说我有这样的字典:
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
抱歉因为我不知道如何做到这一点而无法提供我的尝试。
答案 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
创建密钥,然后执行操作。