2024-04-19 20:42:58 发布
网友
这是我在Python2.7中的示例词典:
sample = {'T1': {'P1': 20, 'P2': 100}, 'T2': {'P1': 60, 'P2': 50}}
我试图用键“P1”和“P2”对所有值求和,得到如下结果:
我该怎么做?在
非常感谢。在
你可以用
>>> d = {'T1': {'P1': 20, 'P2': 100}, 'T2': {'P1': 60, 'P2': 50}} >>> map(sum, zip(*[x.values() for x in d.values()])) [150, 80]
这将首先计算innner dicts,然后取出它们的值并将它们压缩到一起,最后求出它们的总和。在
或者,定义自定义函数并使用它:
从你问题上的标签来看,你似乎在寻找一个列表理解来完成这个任务。通常情况下,它们可能有点难以阅读,但这里有一个:
from collections import Counter sample = {'T1': {'P1': 20, 'P2': 100}, 'T2': {'P1': 60, 'P2': 50}} reqResult = [v[1] for v in sorted(reduce(lambda c, d: (c.update(d), c)[1], sample.values(), Counter()).items())] print reqResult # > [80, 150]
你可以用
这将首先计算innner dicts,然后取出它们的值并将它们压缩到一起,最后求出它们的总和。在
或者,定义自定义函数并使用它:
^{pr2}$从你问题上的标签来看,你似乎在寻找一个列表理解来完成这个任务。通常情况下,它们可能有点难以阅读,但这里有一个:
相关问题 更多 >
编程相关推荐