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中函数的多种格式和使用实例及小技巧
Apr 13 Python
实现python版本的按任意键继续/退出
Sep 26 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
PyQt实现界面翻转切换效果
Apr 20 Python
Python中的TCP socket写法示例
May 11 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
python标识符命名规范原理解析
Jan 10 Python
基于pandas向csv添加新的行和列
May 25 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 Python
Python时间操作之pytz模块使用详解
Jun 14 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
理解javascript回调函数
2014/12/28 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
js分页工具实例
2015/01/28 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python是怎么被发明的
2020/06/15 Python
利用python 下载bilibili视频
2020/11/13 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
学校三八妇女节活动情况总结
2014/03/09 职场文书
会计稽核岗位职责
2015/04/13 职场文书
python tqdm用法及实例详解
2021/06/16 Python