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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python中的闭包实例详解
Aug 29 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
python opencv判断图像是否为空的实例
Jan 26 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
Python pip install如何修改默认下载路径
Apr 29 Python
Python是什么 Python的用处
May 26 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
Terran兵种对照表
2020/03/14 星际争霸
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
php微信开发之谷歌测距
2018/06/14 PHP
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
js控制frameSet示例
2013/09/10 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
怎么写好自荐信
2013/10/30 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
英文推荐信格式范文
2014/05/09 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android