我试图从任何位置l到最后一个数组,但是一旦它到达最后一个位置而不是离开while循环它会显示错误"列表索引超出范围&# 34;
while l <= len(ordenado):
ñ = ordenado[l]
contador2 = contador2+ñ
l = l+1
我已经看到很多关于这个主题的答案,但我还没有能够将它应用到我的问题中,也非常感谢任何帮助。
答案 0 :(得分:3)
python list是0索引,所以你需要使用。
while l < len(ordenado):
对于你的case for loop更合适。
mylist = ['a', 'b', 'c']
for i, item in enumerate(mylist):
print(i, item) #where i will be 0,1,2 and item will be a,b,c
答案 1 :(得分:2)
替换
while l <= len(ordenado):
使用:
while l < len(ordenado):
原因是python列表索引的范围从0到
len(ordenado) - 1
。
>>> mylist = ['a', 'b', 'c']
>>> mylist[0]
'a'
>>> mylist[len(mylist)-1]
'c'
>>> mylist[len(mylist)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
如您所见,mylist[len(mylist)-1]
访问列表的最后一个元素。任何大于此的索引都会生成IndexError
。