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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python映射列表实例分析
Jan 26 Python
书单|人生苦短,你还不用python!
Dec 29 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
django 解决manage.py migrate无效的问题
May 27 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
基于matplotlib xticks用法详解
Apr 16 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
关于 Python json中load和loads区别
Nov 07 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中extract()函数的定义和用法
2012/08/17 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
解决Mac下使用python的坑
2019/08/13 Python
java字符串格式化输出实例讲解
2021/01/06 Python
史上最全面的Java面试题汇总!
2015/02/03 面试题
教师专业理论水平的自我评价分享
2013/11/09 职场文书
银行演讲稿范文
2014/01/03 职场文书
《菜园里》教学反思
2014/04/17 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
2014年双拥工作总结
2014/11/21 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
撤诉书怎么写
2015/05/19 职场文书