2017-10-08 8 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)を見ただけです。私はあなたがここに投稿していない元のコードのサム関数を使用しようとしていると思います。それがエラーを起こす理由です。 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

関連する問題