1
也许这太简单了,我只是没有看到我的错误。while循环 - IndexError:列表索引超出范围
while list_a[y] in list_a != list_a[-1]:
print(y);y=y+1
回报IndexError: list index out of range
list_a
样子:
['00001', '00001', '00002', '00009', '0000G', '0000K', '0000K', '0000U', '0000U', '00013', '0001B', '0001D', '0001D', '0001L', '0001L', '0001N', '0001Q', '0001Q', '0001R', '0001U']
我到底目的是从列表中删除一些项目,而迭代(这就是为什么我想用一个while
循环而不是for y in range(len(list_a))
)。
您如何看待这种情况下呢?它测试'list_a [y]'是否在'list_a'(true或indexerror),然后将这个(true)与'list_a [-1]'进行比较。可能不是你想要的。你有没有尝试过使用'while y
最后循环确实是,直到列表的最后一项输入正确。然后它再次进行比较,发生错误 –
user3753064
(小修正:'in'和'!='具有相同的[优先](https://docs.python.org/2/reference/expressions.html#operator-precedence) ,因此'x in y!= z'实际上就像'(x in y)和(y!= z)'一样计算,类似于'x