为了账号安全,请及时绑定邮箱和手机立即绑定

嵌套字典中的 Python sum 值

嵌套字典中的 Python sum 值

梦里花落0921 2021-10-26 16:48:29
对于我的第一个实际项目,我试图创建一个在 Python IDLE 中运行的简单增量游戏。我遇到了一个问题,我需要在嵌套字典中获取多个值的总和并且卡住了。这是我正在使用的字典:clickers = {'': None,'wooden_sword': {    'owned': 5,    'power': 1,    'price': 5,    },'iron_sword': {    'owned': 10,    'power': 2.5,    'price': 10,    },}我想知道是否有可能获得owned值的总和并将其保存到变量中。keywooden_sword的owned值等于 5,keyiron_sword的owned值等于 10,我想对这些值求和并将它们保存到等于其解的变量中。
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

我认为你需要:


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_)


查看完整回答
反对 回复 2021-10-26
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您可以将该sum函数与生成器表达式一起使用:

sum(d['owned'] for d in clickers.values() if d)

这将返回:

15


查看完整回答
反对 回复 2021-10-26
?
慕标5832272

TA贡献1966条经验 获得超4个赞

可以这样做。


total = 0

for key ,value in clickers.items():

  if value and 'owned' in value.keys():

    total += value['owned']

print(total)


查看完整回答
反对 回复 2021-10-26
  • 3 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信