如何迭代dic当我有一个值和许多值在另一个键



我需要在dict下面迭代并在变量中添加值,当我检查dict 1:2:140时,我得到以下错误,因为不可迭代

TypeError: 'int' object is not iterable

这里有什么解?

dm = {1: {1: {80, 75, 46, 2: 140}, 2: {1: 400}}
def listGastos(dm):
for mes in dm:
totalmes = 0
maxconsumomes = 0
diamax = 0
print("MES: ", mes)
for dia in dm[mes]:
print("DIA:", dia)
for va in dm[mes][dia]:
print("El amount is", va)
totalmes + = va

你的字典定义似乎不正确。

dm ={1:{1:{140} 80年,75年,46岁,2:,2:{:400}}

EOF错误…你需要在末尾再加一个'}'。

另外,你已经插入了一个键,值对'2:140',这将产生语法错误,但你可以通过这样做来修复它:

dm ={1:{1:(80年,75年,46岁,{:140}),2:{:400}}}

现在,你的查询的解决方案是这样的:

dm = {1: {1: [80, 75, 46, {2: 140}], 2: {1: 400}}}
tot = 0
for key,val in dm.items() :
if isinstance(val,dict) :
for nex_t in val.values() :
if isinstance(nex_t,list) :
for i in nex_t :
if isinstance(i,dict) :
loc_tot = 0
i = list(i.values())
nex_t.append(*i)
nex_t.pop(-2)
loc_tot = sum(nex_t)
if isinstance(nex_t,dict) :
tot = sum(nex_t.values()) + loc_tot                    
print(tot)

输出为741。

最新更新