也许它太简单了,我只是没有看到我的错误。
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))
)。
答案 0 :(得分:2)
想想你想要的是:
while list_a[y] != list_a[-1]:
...
即。 "我们正在查看不等于列表中最后一项的项目"。但是,仍然会有问题;如果项目出现在列表中的其他位置,等于最后一项,该怎么办?
执行此操作的一般方法是使用list comprehension从旧列表中的相应项目构建新列表:
list_b = [item for item in list_a if some_test(item)]