当前位置: 代码迷 >> python >> 如何在字典中添加所有int值
  详细解决方案

如何在字典中添加所有int值

热度:35   发布时间:2023-06-13 17:16:16.0

因此,想象一下我有这样的命令:

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

我将如何修复它,以便在dict中进行所有战斗!

这是你想要的吗?

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

必要时进行说明: dict[id]["battles"]已返回int值。 您试图遍历没有意义的int。

这是这个问题的重复:

键只是一个变量名。

  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的原因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)
  相关解决方案