对于我的第一个实际项目,我试图创建一个在Python IDLE中运行的简单增量游戏。我遇到了一个问题,我需要获取嵌套字典中多个值的总和并卡住。
这是我正在使用的字典:
clickers = {
'': None,
'wooden_sword': {
'owned': 5,
'power': 1,
'price': 5,
},
'iron_sword': {
'owned': 10,
'power': 2.5,
'price': 10,
},
}
我想知道是否有可能仅获取owned
值的和并将其保存到变量中。
键wooden_sword
的{{1}}值等于5,键owned
的{{1}}值等于10,我想将它们相加值并将其保存到等于其解的变量中。
答案 0 :(得分:1)
可以通过这种方式完成。
total = 0
for key ,value in clickers.items():
if value and 'owned' in value.keys():
total += value['owned']
print(total)
答案 1 :(得分:1)
我认为您需要:
sum_ = 0
for k,v in clickers.items():
if v: # to ignore None
try: # this to avoid key error
sum_ += v['owned']
except:
pass
print(sum_)
答案 2 :(得分:1)
您可以将sum
函数与生成器表达式一起使用:
sum(d['owned'] for d in clickers.values() if d)
这将返回:
15