这篇文章主要介绍了详解Python遍历列表时删除元素的正确做法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.问题描述

这是在工作中遇到的一段代码,原理大概和下面类似(判断某一个元素是否符合要求,不符合删除该元素,最后得到符合要求的列表):

a=[1,2,3,4,5,6,7,8]

foriina:

ifi>5:

pass

else:

a.remove(i)

print(a)

运行结果:

二.问题分析

因为删除元素后,整个列表的元素会往前移动,而i却是在最初就已经确定了,是不断增大的,所以并不能得到想要的结果。

三.解决方法

1.遍历在新的列表操作,删除是在原来的列表操作

a=[1,2,3,4,5,6,7,8]

print(id(a))

print(id(a[:]))

foriina[:]:

ifi>5:

pass

else:

a.remove(i)

print(a)

print('-------------------------')

print(id(a))

运行结果:

2.filter

内建函数filter()官方文档参考:https://docs.python.org/3/library/functions.html#filter

a=[1,2,3,4,5,6,7,8]

b=filter(lambdax:x>5,a)

print(list(b))

运行结果:

3.列表解析

a=[1,2,3,4,5,6,7,8]

b=[iforiinaifi>5]

print(b)

运行结果:

4.倒序删除

因为列表总是“向前移”,所以可以倒序遍历,即使后面的元素被修改了,还没有被遍历的元素和其坐标还是保持不变的。

a=[1,2,3,4,5,6,7,8]

print(id(a))

foriinrange(len(a)-1,-1,-1):

ifa[i]>5:

pass

else:

a.remove(a[i])

print(id(a))

print('--------------------')

print(a)

运行结果:

到此这篇关于详解Python遍历列表时删除元素的正确做法的文章就介绍到这

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

万水千山总是情,点个【在看】行不行

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事

python 遍历list删除元素_详解Python遍历列表时删除元素的正确做法相关推荐

  1. 用于生成随机数的python标准库模块是_详解Python基础random模块随机数的生成

    详解Python基础random模块随机数的生成 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  详解Python基础random模块随机数的生成.txt ] ( ...

  2. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  3. python函数的使用场景_详解python中strip函数的使用场景

    python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.l ...

  4. python可变参数的实验性_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

  5. python什么是可变参数_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

  6. python中break怎么用_详解Python中break语句的用法

    详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...

  7. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  8. python三维图切片提取_详解Python二维数组与三维数组切片的方法

    如果对象是二维数组,则切片应当是x[:]的形式,里面有一个冒号,冒号之前和之后分别表示对象的第0个维度和第1个维度: 如果对象是三维数组,则切片应当是x[::],里面有两个冒号,分割出三个间隔,三个间 ...

  9. python怎么设置七牛云_详解Python在七牛云平台的应用(一)

    七牛云七牛云是国内领先的企业级云服务商.专注于以数据为核心的云计算业务,围绕富媒体场景推出了对象存储.融合CDN.容器云.大数据.深度学习平台等产品,并提供一站式视频云解决方案,同时打造简单,可信赖的 ...

最新文章

  1. python录入数据至ppt_用 Python 让你的 PPT 数据动起来
  2. 设计模式:观察者模式--Observer
  3. Centos 6安装python3.5
  4. PP生产订单成本的计划、控制和结算
  5. 16位汇编 int 10h和int 21h 显示字符串实例
  6. Docker学习五:Docker 数据管理
  7. nslookup get public/external IP
  8. 数据结构与算法之图的深度优先遍历(DFS)
  9. Open Distro 初探
  10. android - studio版本控制文件颜色代表意思
  11. linux换终端的背景颜色,肿么调整linux终端背景颜色
  12. no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
  13. java简单播放器涉及与实现
  14. 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
  15. html的css样式大全,css样式有哪些?
  16. 博弈——ICE公平组合游戏(简单整理结论)
  17. 中芯微和高通410的随身WiFi哪种好,随身WiFi怎么刷机
  18. Radiant:AR/VR显示系统测试比2D屏难在哪?
  19. linux字体加粗,CSS Fonts(字体)介绍
  20. 2022HZWA比武题 服务器集群分析

热门文章

  1. 分布式数据库HBase
  2. CAS4.0集成OpenLdap返回用户属性
  3. 解决用pyinstaller打包python程序,生成的.exe文件过大问题
  4. Nginx《四》——NginxNginx 高级配置
  5. 艺工交叉之神--达芬奇
  6. 指派问题与匈牙利算法
  7. C语言中全局变量和局部变量,内部函数和外部函数的区别
  8. 什么是进销存管理系统?
  9. 字符和字节的区别与分析
  10. 网络入门-NAT网络地址转换-Easy ip