我有一个清单:
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
我正在尝试解决这些错误,但我无法找到原因。谢谢
答案 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