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的web框架中的Model的教程
Apr 29 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
Python中的sort()方法使用基础教程
Jan 08 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
python 用下标截取字符串的实例
Dec 25 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 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
PHP define函数的使用说明
2008/08/27 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
python模块之re正则表达式详解
2017/02/03 Python
python实现装饰器、描述符
2018/02/28 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
python如何进行矩阵运算
2020/06/05 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
个人整改措施书面材料
2014/10/24 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
情况说明书怎么写
2015/10/08 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
业余无线电通联Q语
2022/02/18 无线电