如何在di中添加所有int值

2024-09-30 08:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,想象一下我有这样的口述:

dict = {
    "100311929821626368" : {
        "battles" : 2,
        "loses" : 0,
        "maxstamina" : 50,
        "news" : True,
        "stamina" : 50,
        "weeb" : "Chuey",
        "wins" : 0
    },
    "100802430467325952" : {
        "battles" : 4,
        "loses" : 0,
        "maxstamina" : 50,
        "news" : True,
        "stamina" : 45,
        "weeb" : "Red Haired Bastard",
        "wins" : 0
    },
    "101970309296447488" : {
        "battles" : 1,
        "loses" : 0,
        "maxstamina" : 50,
        "news" : True,
        "stamina" : 45,
        "weeb" : "Niusky",
        "wins" : 1
    }
}

我的代码是:

wow = 0
for id in dict:
   for i in dict[id]["battles"]:
      wow += i

问题是,我不知道如何一次添加所有的战斗int。因为我得到这个错误:

TypeError: 'int' object is not iterable

我该怎么解决它,让它成为字典里所有的战斗!你知道吗


Tags: inidtruefordictintnews想象
3条回答

这是这个问题的重复:Iterating over dictionaries using 'for' loops

键只是一个变量名。你知道吗

  for key in d:

将简单地循环字典中的键,而不是键和值。要循环键和值,可以使用以下命令:

对于Python 2.x:

  for key, value in d.iteritems():
        wow += value["battles"]

对于Python 3.x:

  for key, value in d.items():

问题是dict[id]['battles']是int类型的对象,所以这就是得到错误TypeError: 'int' object is not iterable的原因。你知道吗

您可以通过以下方式解决:

wow = 0
for key in dict:
   wow += dict[key]['battles']

或者,您甚至可以通过使用Python理解来简化代码:

wow = sum(dict[key]['battles'] for key in dict)

这就是你想要的吗?你知道吗

wow = 0
for id in dict:
     wow += dict[id]["battles"]

必要时解释:dict[id]["battles"]已经返回int值。你试图迭代那个int,这毫无意义。你知道吗

相关问题 更多 >

    热门问题