python的列表,元组和for循环

时间:2016-12-05 22:48:28

标签: python

我有一个清单:

ItemName  ItemHeight   ItemX   ItemY
"c34"     170           0       50
"c34"     170           1       30

一个元组列表:

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

对于(a [i])中的每个元素,它在f(f [i])中具有相关元素(元组)。所以我需要的是根据用户将每个a [i]中的元素加到f [i]中直到某些索引。例如,如果用户希望求和结束直到某个索引为2,则输出将为ID 1 = a [0] - > sum为2(f [0] = 1 + f [1] = 1),ID 2 = a [2] - >求和是1 [f [0] = 0 + f [1] = 1],依此类推,直到[3] 这是我的代码:

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

我收到错误加上错误的结果[a]:

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

我正在尝试解决这些错误,但我无法找到原因。谢谢

1 个答案:

答案 0 :(得分: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