所以,想象一下,我得到了这样一个字典:
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
问题是,我不确定如何一次性添加所有战斗。因为我收到了这个错误:
TypeError: 'int' object is not iterable
我将如何解决这个问题,以便完成所有战斗中的所有战斗!
答案 0 :(得分:3)
这是你想要的吗?
wow = 0
for id in dict:
wow += dict[id]["battles"]
必要时说明:dict[id]["battles"]
已经返回int值。你试图迭代那个毫无意义的int。
答案 1 :(得分:1)
这是此问题的副本: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():
答案 2 :(得分:1)
问题是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)