这是我的代码的一部分:
add_values=[2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000]
for each in add_values:
print(each)
s=add_values[each]
s=int(s)
h=s*100
mydict[add_values[each]]=s
它正在提出这个错误:
IndexError: list index out of range
(For the s=add_values[each] line)
请告诉我这里有什么问题,需要改变什么,
感谢。
答案 0 :(得分:1)
考虑到达add_values
中的第五项:
for each in add_values:
print(each) # each == 50
s=add_values[each] # what's the fiftieth item in 'add_values'?!
您无需索引到add_values
,您已经在访问该值 - 将add_values[each]
替换为each
。
答案 1 :(得分:0)
each
是值,您不能将其用作索引(主要是因为add_values
的大小为14且您在add_values
内的值大于此值) :
add_values=[2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000]
for each in add_values:
print(each)
s=each
s=int(s)
h=s*100
mydict[each]=s
另一种解决方案是使用索引:
add_values=[2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000]
for i in range(len(add_values)):
print(add_values[i])
s=add_values[i]
s=int(s)
h=s*100
mydict[add_values[i]]=s
答案 2 :(得分:0)
您正在使用数组元素作为数组 index ,这就是您遇到越界错误的原因。
使用Python的for
循环表示法,您不需要明确地访问索引;只需访问元素,在您的情况下为each
:
for each in add_values:
print(each)
s=each # kind of redundant, but this should work
答案 3 :(得分:0)
for each in add_value
将each
设置为2,5,10,20,50等。在循环的第4次迭代中,each
为20.当您说{{1}时},您收到错误,因为add_values[each]
只有14个元素而您正在尝试访问元素编号20.如果尝试访问元素编号50000,则会遇到更多麻烦。