Python实现删除列表中满足一定条件的元素示例


Posted in Python onJune 12, 2017

本文实例讲述了Python实现删除列表中满足一定条件的元素。分享给大家供大家参考,具体如下:

从列表中删除满足一定条件的元素。

如:删除一个列表中长度为0的元素,或者删除列表中同时是2和3的倍数的元素。

做过高级语言编程的人想当然的会认为“这很简单”,可以如下面的方式来实现:

for i in listObj:
  if(...):
    listObj.remove(i)

看下一个小例子和结果:

a = [1, 2, 3, 12, 12, 5, 6, 8, 9]
for i in a:
    if i % 2 == 0 and i % 3 == 0:
      a.remove(i)
print(a)

运行结果:

E:\Program\Python>d.py
[1, 2, 3, 12, 5, 8, 9]

看到了吗?12竟然没有被删除!!!(这是Python列表操作的一个非常容易出错的地方)

要实现预期的目标,其实还是有不少变通方法的,比如:

a = [1, 2, 3, 12, 12, 5, 6, 8, 9]
b = a[:]
for i in a:
    if i % 2 == 0 and i % 3 == 0:
      b.remove(i)
a = b
print(a)

运行结果:

E:\Program\Python>d.py
[1, 2, 3, 5, 8, 9]

看看,现在达到预期的目标了吧。从上面的代码不难发现,我们构建了列表b,复制了列表a中的所有元素,通过遍历a来删除b中的元素,最后把a指向b。

我还发现了另一种方法,自认为挺不错的——列表推导式

a = ['what', '', '', 'some', '', 'time']
a = [i for i in a if len(i) > 0]
print(a)
b = [1, 2, 3, 12, 12, 5, 6, 8, 9]
b = [i for i in b if not(i % 3 == 0 and i % 2 == 0)]
print(b)

运行结果:

E:\Program\Python>d.py
['what', 'some', 'time']
[1, 2, 3, 5, 8, 9]

相比较之下,您认为哪种写法更好呢??从性能上来看,可能效率都不是太好,但是从写法简洁上来看,我是更喜欢后者!

更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中多线程及程序锁浅析
Jan 21 Python
python简单猜数游戏实例
Jul 09 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
python模拟实现分发扑克牌
Apr 22 Python
Python flask框架端口失效解决方案
Jun 04 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Python基于template实现字符串替换
Nov 27 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 #Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 #Python
详谈python http长连接客户端
Jun 12 #Python
浅谈Python 的枚举 Enum
Jun 12 #Python
sublime text 3配置使用python操作方法
Jun 11 #Python
python爬虫之百度API调用方法
Jun 11 #Python
python数据处理实战(必看篇)
Jun 11 #Python
You might like
改变Apache端口等配置修改方法
2008/06/05 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php抽象类用法实例分析
2015/07/07 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
Js 随机数产生6位数字
2010/05/13 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Python正则表达式经典入门教程
2017/05/22 Python
python数据结构之列表和元组的详解
2017/09/23 Python
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
哪些情况下不应该使用索引
2015/07/20 面试题
大专学生推荐信范文
2013/11/19 职场文书
简单英文演讲稿
2014/01/01 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
剪彩仪式主持词
2014/03/19 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
答辩状格式范本
2015/05/22 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书