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中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
Python将string转换到float的实例方法
Jul 29 Python
python线程定时器Timer实现原理解析
Nov 30 Python
基于python 凸包问题的解决
Apr 16 Python
python3处理word文档实例分析
Dec 01 Python
如何用python实现一个HTTP连接池
Jan 14 Python
详解Flask开发技巧之异常处理
Jun 15 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学习笔记之面向对象编程
2012/12/29 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
python取均匀不重复的随机数方式
2019/11/27 Python
django ORM之values和annotate使用详解
2020/05/19 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
如何整合JQuery和Prototype
2014/01/31 面试题
房地产管理毕业生自荐信
2013/11/04 职场文书
中文系学生自荐信范文
2013/11/13 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
程序员求职信
2014/04/16 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
租房协议书
2014/09/12 职场文书
2014年科室工作总结
2014/11/20 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
花木兰观后感
2015/06/10 职场文书
军训决心书范文
2015/09/22 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书