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简单日志处理类分享
Feb 14 Python
python删除列表中重复记录的方法
Apr 28 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
python 文件查找及内容匹配方法
Oct 25 Python
彻底理解Python中的yield关键字
Apr 01 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
Python基于Faker假数据构造库
Nov 30 Python
教你用python控制安卓手机
May 13 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
PHP中soap的用法实例
2014/10/24 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
Yii rules常用规则示例
2016/03/15 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
js 页面输出值
2008/11/30 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
python urllib爬取百度云连接的实例代码
2017/06/19 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python文件操作的简单方法总结
2019/11/07 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
12月红领巾广播稿
2014/02/13 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
python urllib库的使用详解
2021/04/13 Python
Java实现简易的分词器功能
2021/06/15 Java/Android