>>> lst = [1,2,3]
>>> lst[2]
3
>>> lst.remove(1)
>>> lst[1]
3
>>> lst[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
构建一个新列表更安全:
return [item for item in lst if item[0]!=1 and item[1]!=1]
你在修改你正在迭代的列表。如果这样做,列表的大小将缩小,因此最终
lst[i]
将指向列表的边界之外。构建一个新列表更安全:
当您在
list
中迭代时,不应该remove
项;这会更改所有后续项的索引,因此IndexError
。你可以尝试一个简单的列表理解:一般来说,这意味着您提供的索引的列表元素不存在。
例如,如果您的列表是[12、32、50、71],并且您要求索引10处的元素,那么您将完全超出范围并收到错误,因为只有元素0到3存在。
相关问题 更多 >
编程相关推荐