首页 > 解决方案 > 通过 for 循环遍历字典并计算事件数

问题描述

d={a': [True]}
{'b': [True]}
{'c': [True]}
{'d': [True, False, True]}

我想计算每个字母的真假数,然后输出每个数据的真假比。d 的示例:真数 = 2 和假数 = 1。它应该打印 2/1=1 的比率来做到这一点,到目前为止我已经这样做了:

我的代码

但它一直输出零。为什么?

标签: pythonsortingdictionary

解决方案


您的值是booltypeTrue/False并且您将它们与strtype进行比较'True',因此所有内容都将被评估为False,应该是

if l: 
    count_s +=1 
else:
    count_f +=1 

Acollections.Counter也可能非常有用

d = {'a': [True], 'b': [True], 'c': [True], 'd': [True, False, True], 'e': [False]}

for edge, values in d.items():
    c = Counter(values)
    ratio = c.get(True, 0) / c.get(False, 1)
    print(edge, ratio)

a 1.0
b 1.0
c 1.0
d 2.0
e 0.0

推荐阅读