我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

python 列表去掉指定元素

list1 = [1, 2, 2, 3, 2, 2]
for i in list:
    if i == 2:
        list1.remove(i)
print(list)

结果输出为什么是

[1, 3, 2, 2]

而不是

[1, 2, 3, 2]

不应该是删除1后面的第一个2之后,第二个2前移,没有被删掉,然后3后面的第一个2被删掉,第二个2没被删掉吗?

list1.remove(i)只删除最先匹配到list1中的i,list1执行删除了两次后退出循环,所以,只删除了前面两个2
不管i 匹配的时候是哪个下面,remove都从前面开始查找删除

近期文章

  • 代码一样,运行结果不同
  • 按键怎么实现按下显示温度
  • C语言程序设计,C语言,使用循环语句
  • 懂Avue的大神,点击dialog中的提交按钮,表单被锁定不能再次编辑
  • 认真的求一个详细讲解!
  • 请使用c语言解决一下该程序设计题
  • !>&&>||,但为什么结果是1
  • C语言程序的练习!!
  • 1、实现标题,段落,文本渲染,实现图1效果
  • 基础c语言 基础c语言
  • open in browers的2.0版本怎么换成1.0版本?
  • JAVA程序出错了,但是控制台并没有打印Exception的信息?
  • C语言选择结构程序设计
  • App直传文件到对象存储,会不会有风险?
  • python条件判断异常问题,不按照条件输出结果,如何解决?
  • System.format.exception问题怎么办
  • 这样加没毛病吧,为什么0分
  • 这个为什么不是死循环?
  • 选择商品购买数量按钮。来自大一新生
  • ORACLE数据库导出存储在blob类型字段中的图片

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华