You're modifying the list you're iterating over. If you do that, the size of the list shrinks, so eventually
lst[i]
will point beyond the list's boundaries.>>> 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
It's safer to construct a new list:return [item for item in lst if item[0]!=1 and item[1]!=1]
No comments:
Post a Comment