首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >remove()函数仅在for循环中处理偶数索引值

remove()函数仅在for循环中处理偶数索引值
EN

Stack Overflow用户
提问于 2021-02-26 01:15:20
回答 1查看 38关注 0票数 0

我是Python的新手,我试着运行下面的代码,它定义了一个列表并遍历它,删除了索引"x“处的元素。

代码语言:javascript
复制
list1 = [1, 2, 3, 4, 5, 6]

for x in list1:
 
 list1.remove(x)
 
 print(list1)

然而,它只删除偶数索引处的元素,正如您从下面的可视化示例中所看到的:

image

如何修改我的代码,使其获得以下输出?

代码语言:javascript
复制
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
[]
EN

回答 1

Stack Overflow用户

发布于 2021-02-26 01:18:05

当你在列表中迭代时,永远不要删除元素。

当您在迭代时修改列表时,迭代器将对应于列表中的一个元素,而该元素不再是您所期望的。

要解决此问题,请使用[:]语法遍历列表的副本

代码语言:javascript
复制
list1 = [1, 2, 3, 4, 5, 6]
for x in list1[:]:
  list1.remove(x)
  print(list1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66373293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档