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对象体系深入分析
Oct 28 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 Python
python enumerate函数的使用方法总结
Nov 15 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
python 把列表转化为字符串的方法
Oct 23 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
django 装饰器 检测登录状态操作
Jul 02 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 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
神族 PROTOSS 概述
2020/03/14 星际争霸
JS处理VBArray的函数使用说明
2008/05/11 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
再论Javascript的类继承
2011/03/05 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
JS装饰器函数用法总结
2018/04/21 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
学习python的几条建议分享
2013/02/10 Python
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
中间件的定义
2016/08/09 面试题
建筑专业自我鉴定
2013/10/22 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
英文自荐信常用句子
2014/03/26 职场文书
我的画教学反思
2014/04/28 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
工作会议方案
2014/05/21 职场文书
经理任命书模板
2014/06/06 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python