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中为feedparser设置超时时间避免堵塞
Sep 28 Python
编写Python脚本使得web页面上的代码高亮显示
Apr 24 Python
Python科学计算之Pandas详解
Jan 15 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
Python中修改字符串的四种方法
Nov 02 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
Django框架封装外部函数示例
May 28 Python
如何在python中写hive脚本
Nov 08 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
python 画图 图例自由定义方式
Apr 17 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
python 装饰器的使用示例
Oct 10 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
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
jquery一句话全选/取消全选
2011/03/01 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
秋季运动会广播稿
2014/02/22 职场文书
第二课堂活动总结
2014/05/07 职场文书
企业年度评优方案
2014/06/02 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
学生偷窃检讨书
2014/09/25 职场文书
商务司机岗位职责
2015/04/10 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
你会写请假条吗?
2019/06/26 职场文书
导游词之安徽九华山
2019/09/18 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL