2017-09-14 5 views
-1
私はこれが TypeError例外をコード - 実行時にエラーがあります

:「int型」オブジェクト反復可能ではありませんどのようにリストから最大値を見つけ、それを二乗し、最終的に取るMOD

私はそれをどのように修正するのでしょうか? (Pythonの3)

t,n=input().split() #t refers to number of lists 
l=[0]*7 #initialized list to 0 as maximum 7 elements are possible in list 
s=0 
for i in range(0,int(t)): 
    l[i]=list(map(int,input().split())) #take inputs for t list 
for j in l: #to find max in each list 
    s=s+(max(j)*max(j)) 
print(s%n) 


Traceback (most recent call last): 
File "solution.py", line 7, in 
s=s+(max(j)*max(j)) 
TypeError: 'int' object is not iterable 


inputs: 
3 1000 
2 5 4 
3 7 8 9 
5 5 7 8 9 10 

output: 
206 
+0

あなたの質問には、トレースバックを含むエラーの全文を編集してください。 –

+0

bar私の最後のコメント。トレースバックしてください。あなたの変数に意味のある名前を付けることは助けになります... –

+0

上記のコードのサンプルの入出力を提供できますか? – arsho

答えて

0

静的宣言lが問題を引き起こしていました。私はそれをダイナミックにしました。

修正コード:

t,n=list(map(int, input().split())) #t refers to number of lists 
l=[] #initialized list to 0 as maximum 7 elements are possible in list 
s=0 
for i in range(t): 
    l.append(list(map(int,input().split()))) #take inputs for t list 
for j in l: #to find max in each list 
    s=s+(max(j)*max(j)) 
print(s%n) 

サンプル入力:

3 1000 
2 5 4 
3 7 8 9 
5 5 7 8 9 10 

サンプル出力:私はそれが役に立てば幸い

206 

+0

Great !!!それはうまく動作しますが、いくつかのテストケースが失敗します。 – Amit

+0

嬉しいです。あなたがそれを受け入れられた答えとしてマークするなら、私は義務づけられます。 – arsho

0

最大はあなたが整数を指している、そのための最大(intは)あなたに与えられたエラーを表示し、「リットルでjについて」書いたら、パラメータとしてリストを受け取る機能です。

関連する問題