Python 如何在dict中添加所有int值

Python 如何在dict中添加所有int值,python,int,typeerror,Python,Int,Typeerror,那么,想象一下我有一个这样的口述: dict = { "100311929821626368" : { "battles" : 2, "loses" : 0, "maxstamina" : 50, "news" : True, "stamina" : 50, "weeb" : "Chuey", "wins" : 0 }, "100802430467325952"

那么,想象一下我有一个这样的口述:

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
我该如何修复它,以使它在字典中的所有战斗中都有效

这就是你想要的吗

wow = 0
for id in dict:
     wow += dict[id]["battles"]
必要时解释:
dict[id][“battles”]
已返回int值。您试图对该int进行迭代,这毫无意义。

这就是您想要的吗

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

必要时解释:
dict[id][“battles”]
已返回int值。您试图在该int上迭代,这毫无意义。

这是此问题的重复:

键只是一个变量名

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

对于Python2.x:

  for key, value in d.iteritems():
        wow += value["battles"]
对于Python 3.x:

  for key, value in d.items():

这是这个问题的重复:

键只是一个变量名

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

对于Python2.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'对象不可编辑

您可以通过以下方式解决此问题:

wow = 0
for key in dict:
   wow += dict[key]['battles']
或者,您甚至可以通过使用Python理解来简化代码:

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

问题是,
dict[id]['battles']
是int类型的对象,因此您得到错误的原因是
TypeError:'int'对象不可编辑

您可以通过以下方式解决此问题:

wow = 0
for key in dict:
   wow += dict[key]['battles']
或者,您甚至可以通过使用Python理解来简化代码:

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

sum(dict中x的x['battles')
以防万一,这实际上是在您的真实代码中。避免使用
dict
实际存储词典
dict
是一个内置的字典,用于创建字典。
sum(dict中x的x['battles'])
以防万一,这实际上是在您的真实代码中。避免使用
dict
实际存储词典
dict
是用于创建字典的内置工具。请解释他们做错了什么。这将有助于OP更好地理解为什么他们所做的是错误的。天哪,是的,你很聪明。把它写在你的答案中。让它更完整。解释他们做错了什么。这将有助于OP更好地理解为什么他们所做的是错误的。天哪,是的,你很聪明。把它写在你的答案中。让它更完整。如果他们根本不需要键,
itervalues()
/
values()
会更直接。如果他们根本不需要键,
itervalues()
/
values()
会更直接。