Python while循环索引器错误:列表索引超出范围

Python while循环索引器错误:列表索引超出范围,python,python-2.7,while-loop,Python,Python 2.7,While Loop,也许这太简单了,我只是没有看到我的错误 while list_a[y] in list_a != list_a[-1]: print(y);y=y+1 返回索引器:列表索引超出范围 列表a看起来像: ['00001', '00001', '00002', '00009', '0000G', '0000K', '0000K', '0000U', '0000U', '00013', '0001B', '0001D', '0001D', '0001L', '0001L', '0001N',

也许这太简单了,我只是没有看到我的错误

while list_a[y] in list_a != list_a[-1]:
    print(y);y=y+1
返回索引器:列表索引超出范围

列表a
看起来像:

['00001', '00001', '00002', '00009', '0000G', '0000K', '0000K', '0000U', '0000U', '00013', '0001B', '0001D', '0001D', '0001L', '0001L', '0001N', '0001Q', '0001Q', '0001R', '0001U']

最后,我的目标是在迭代时从列表中删除一些项(这就是为什么我想使用
while
循环,而不是
来表示范围内的y(len(list_a))

想想你想要的是:

while list_a[y] != list_a[-1]:
    ...
i、 e.“当我们查看与列表中最后一项不相等的项目时”。但还是会有问题,;如果列表中其他地方出现的项目与最后一个项目相同,该怎么办

执行此操作的一般方法是使用从旧列表中的相应项构建新列表:

list_b = [item for item in list_a if some_test(item)]

你认为这种情况有什么作用?它测试
list\u a[y]
是否在
list\u a
(true或indexer)中,然后将其(true)与
list\u a[-1]
进行比较。可能不是你想要的。您是否尝试过在y时使用
?最后,循环会一直执行,直到列表的最后一个条目都正确无误。然后再次进行比较,出现错误(轻微更正:
in
!=
具有相同的值,因此
x in y!=z
的计算结果实际上类似于
(x in y)和(y!=z)
,类似于
x