在与列表中的每个键的多个值的字典,如何将字典中的列表值分成另一个列表?
aa = {"A": [0, 0.12, 0, 0.73, 0], "B": [0.96, 0, 0.30, 0, 0], "C": [0, 0, 0, 0.11, 0], "D": [0, 0.07, 0, 0.42, 0]}
获得后总和在基于解答的所有键排列的所有值以How to sum values in dictionary based on position?
bb = [sum(value) for value in zip(*aa.values())]
结果为bb
是[0.96, 0.19, 0.3, 1.26, 0]
。
我想在每一个关键的BB划分值,这个结果一定是:
{"A": [0, 0.63, 0, 0.57, 0], "B": [1, 0, 1, 0, 0], "C": [0, 0, 0, 0.087, 0], "D": [0, 0.36, 0, 0.33, 0]}
我试图通过这个代码:
aa = {"A": [0, 0.12, 0, 0.73, 0], "B": [0.96, 0, 0.30, 0, 0], "C": [0, 0, 0, 0.11, 0], "D": [0, 0.07, 0, 0.42, 0]}
bb = [sum(value) for value in zip(*aa.values())]
cc = {}
for key, value in (aa.items()):
cc.setdefault(key, [])
cc[key].append((x*1.0)/y for x, y in zip(aa, bb))
,但其结果是不正确的。
{'A': [<generator object <genexpr> at 0x7f998d0640f0>], 'C': [<generator object <genexpr> at 0x7f998d064140>], 'B': [<generator object <genexpr> at 0x7f998d0640a0>], 'D': [<generator object <genexpr> at 0x7f998d064050>]}
你r代码和意外输出做**不匹配**。这表明你使用了'append()'而不是'extend()'。 –
为什么你重新发布相同的问题:https://stackoverflow.com/questions/45408275/how-to-divide-values-in-a-dictionary-to-sum-of-values? –
嗨@Ashwini Chaudhary,对不起,我是新的stackoverflow,我无法完全解释那篇文章,所以删除它并转贴。 – nickan