我是Python的新手,我试着运行下面的代码,它定义了一个列表并遍历它,删除了索引"x“处的元素。
list1 = [1, 2, 3, 4, 5, 6]
for x in list1:
list1.remove(x)
print(list1)然而,它只删除偶数索引处的元素,正如您从下面的可视化示例中所看到的:
如何修改我的代码,使其获得以下输出?
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
[]发布于 2021-02-26 01:18:05
当你在列表中迭代时,永远不要删除元素。
当您在迭代时修改列表时,迭代器将对应于列表中的一个元素,而该元素不再是您所期望的。
要解决此问题,请使用[:]语法遍历列表的副本:
list1 = [1, 2, 3, 4, 5, 6]
for x in list1[:]:
list1.remove(x)
print(list1)https://stackoverflow.com/questions/66373293
复制相似问题