2017-10-08 54 views
-3

我想在字典中的每個列表上打印總和,但錯誤返回爲TypeError:'int'對象不可迭代,不知道該怎麼辦。如何打印字典的總和

def pass_bags(s,j): 

    plane={} 
    plane['Spirit']=s 
    plane['JetBlue']=j 
    return plane 
def show_bags(bags, airline): 
    for i in range(len(bags)): 
     for x in bags[airline][i]: 
      print (type (x)) 
s=[[5,6,7,7,8],[9,3,5]] 
j=[[2,8,9,7],[2,3,5,6]] 

什麼需要說的是

On Spirit Airlines: 
person 1 has 5 bags weighing 87 lbs 
person 2 has 3 bags weighing 17 lbs 
+3

問題尋求幫助調試(「爲什麼不是這個代碼的工作?」)必須包括所期望的行爲,一個特定的問題或錯誤,並重現它在問題本身所需要的最短的代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。 –

+0

你在哪裏調用你定義的函數? – user1190882

+0

你確定你的代碼不工作嗎?它在我的控制檯上工作,沒有改變。我剛剛在錯誤列表中看到了sum(x)。我想你試圖在你沒有發佈在這裏的原始代碼上使用sum函數。這就是你出錯的原因。 Coz sum將嘗試迭代給定的對象,並且您有'int'沒有'列表' – gautamaggarwal

回答

0

你需要指數字典只有在與該鍵相關聯的列表進行迭代。對於每個鍵,將每個子列表和打印詳細信息相加。

def show_bags(bags, airline): 
    for i, l in enumerate(bags[airline], 1): 
     print('person {} has {} bags weighing {} lbs'.format(i, len(l), sum(l)) 
+0

謝謝@COLDSPEED – timstacy