IndexError:列表索引超出范围python - 3.4.3

时间:2017-02-16 16:05:49

标签: python index-error

如果我执行此代码,则会出现以下错误消息:

  

IndexError:列表索引超出范围python

def reverse_invert(lst):
    inverse_list = []

    for i in lst:
        if isinstance( i, int ):
             inverse_list.append(lst[i])
        #print(inverse_list)       
             print(i)       
        else:
            break
    return inverse_list

为什么?

4 个答案:

答案 0 :(得分:1)

for i in lst:

将迭代lst元素

如果要迭代索引,请使用

for i in range(len(lst)):

答案 1 :(得分:0)

您正在迭代列表的元素,但尝试将该元素用作索引。您应该像这样更改代码:

def reverse_invert(lst):
inverse_list = []

for i in lst:
    if isinstance( i, int ):
         inverse_list.append(i) # changed this one.
    #print(inverse_list)       
         print(i)       
    else:
        break
return inverse_list

答案 2 :(得分:0)

列表理解可以正常工作:

a = [1, 'a', 2, 3]

print [d for d in a[::-1] if isinstance(d, int)]

如果你想要扭转局面,那么只需进行微小的改变:

a = [1, 'a', 2, 3]

print [d for d in a[::-1] if isinstance(d, int)]

或许我错过了你的观点。

答案 3 :(得分:0)

通常,这意味着您提供的列表元素不存在的索引。

例如,如果您的清单是

  

[1,3,5,7],并且你要求索引10处的元素,你将远离界限并收到错误,因为只存在元素0到3。