Python列表索引超出了数组的范围python

时间:2018-03-10 02:14:01

标签: python arrays list while-loop

我试图从任何位置l到最后一个数组,但是一旦它到达最后一个位置而不是离开while循环它会显示错误"列表索引超出范围&# 34;

while l <= len(ordenado):
      ñ = ordenado[l]
      contador2 = contador2+ñ
      l = l+1

我已经看到很多关于这个主题的答案,但我还没有能够将它应用到我的问题中,也非常感谢任何帮助。

2 个答案:

答案 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