3 回答
TA贡献1818条经验 获得超3个赞
您可以将该sum
函数与生成器表达式一起使用,该表达式遍历 dict 和子 dicts 的值:
sum(n for d in a.values() for n, _ in d.values())
这将返回:
250
请注意,这all
是一个内置函数名称,因此我已将all
您问题中的变量重命名为a
。
TA贡献1859条经验 获得超6个赞
原因是首先
for partData in all.values():
depPart = 0
for act in partData.keys():
depPart += partData[act][0]
print(depPart)
在第 2 行,depPart=0每次您从所有print(depPart)打印值中获取一个值时, 每次它都会对每个值中的每个值求和,因此您的代码应该是
depPart = 0
for partData in all.values():
for act in partData.keys():
depPart += partData[act][0]
print(depPart)
希望能帮助到你
TA贡献1995条经验 获得超2个赞
您可以使用列表理解sum:
d = {'part1': {'act1': [0, 0], 'act2': [100, 0]}, 'part2': {'act1': [25, 1], 'act2': [100, 1]}, 'part3': {'act1': [25, 0], 'act2': [0, 1]}, 'part4': {'act1': [0, 0], 'act2': [0, 1]}}
_sum = sum(sum(a for a, *_ in c.values()) for c in d.values())
输出:
#[100, 125, 25, 0]
250
添加回答
举报