2016-12-05 13 views
-1

のために私が持っているリスト:Pythonのリスト、タプルとループ

a=[1, 2, 3, 300] # this is IDs of workers 

そして、タプルのリスト:

f=[(1, 1, 1), (1, 0, 0), (0, 0, 0), (1, 500, 600)] 

内のすべての要素についての([i])と、それは関連がありますf(f [i])の要素(タプル)。だから、私が必要とするのは、ユーザごとに特定の指標までf [i]の各要素を合計することです。たとえば、あるインデックスが2となるまで集計を終了したい場合、出力はID 1 = a [0] - >合計2(f [0] = 1 + f [1] = 1) 1] [f] [0] = 0 + f [1] = 1]のようになり、[3]ここに私のコード:

str1=int(input('enter the index[enter -->1/2/3]')) 
a=[1, 2, 3, 300] 
f=[(1, 1, 1), (1, 0, 0), (0, 0, 0), (1, 500, 600)] 
length=len(a) 
temp=0 #sum 
for i in range(0,length): 
    y=a[i] 
    att_2=f[i] 
    print("{} {}".format("The worker ID is ", y)) 
    for z in range(0,(str1)): 
     temp=temp+att_2[i] 
     print(temp) # tracing the sum 

は、私はいくつかのエラーに加えて、間違った結果を取得[I]:

enter the index[enter -->1/2/3]2 
temp=temp+att_2[i] 
IndexError: tuple index out of range 
The Student ID is 1 
1 
2 
The Student ID is 2 
2 
2 
The Student ID is 3 
2 
2 
The Student ID is 300 

Process finished with exit code 1 

私はこれらのエラーを修正しようとしていますが、私はその原因を見つけることができません。ありがとう

答えて

0

エラーiと変数zが混在しています。

コードは変数iを使用してタプルをループし、最大値がiになるとエラーが発生し、別の命令セットで計算されます。

ライン11上の変数のスイッチが

オリジナルあなたの問題を解決します:

str1=int(input('enter the index[enter -->1/2/3]')) 
a=[1, 2, 3, 300] 
f=[(1, 1, 1), (1, 0, 0), (0, 0, 0), (1, 500, 600)] 
length=len(a) 
temp=0 #sum 
for i in range(0,length): 
    y=a[i] 
    att_2=f[i] 
    print("{} {}".format("The worker ID is ", y)) 
    for z in range(0,(str1)): 
     temp=temp+att_2[i] 
     print(temp) # tracing the sum 

新:

str1=int(input('enter the index[enter -->1/2/3]')) 
a=[1, 2, 3, 300] 
f=[(1, 1, 1), (1, 0, 0), (0, 0, 0), (1, 500, 600)] 
length=len(a) 
temp=0 #sum 
for i in range(0,length): 
    y=a[i] 
    att_2=f[i] 
    print("{} {}".format("The worker ID is ", y)) 
    for z in range(0,(str1)): 
     temp=temp+att_2[z] 
     print(temp) # tracing the sum 
関連する問題