在Python中使用filter去除列表中值为假及空字符串的例子


Posted in Python onNovember 18, 2019

在 Python中,认为以下值为假:

None # None值

False # False值

0 # 数值零不管它是int,float还是complex类型

'',(),[] # 任何一个空的序列

{} # 空的集合

如果一个列表中含上面值为假的元素,要去除的话,可以使用内置函数的filter默认的参数None。

可以先看下filter内置函数的帮助文档

>>> help(filter)
Help on built-in function filter in module __builtin__:
 
filter(...)
 filter(function or None, sequence) -> list, tuple, or string
 
 Return those items of sequence for which function(item) is true. If
 function is None, return the items that are true. If sequence is a tuple
 or string, return the same type, else return a list.
 
>>>

从上面的doc文档可以看出,第一个参数可以为一个函数,也可以为None.

如果第一个参数为函数

>>> def odd(n):
...  return n % 2 == 1
...
>>> filter(odd, range(10))     # 第一个参数为一般函数
[1, 3, 5, 7, 9]
>>>
>>> filter(lambda x: x % 2 == 0, range(10)) # 第一个参数为匿名函数
[0, 2, 4, 6, 8]

如果第一个参数为None的话,则默认会去除序列中所有值为假的元素

>>> L = [1,'',0,'A',None,[1,2],False,3.14,[],{'a':1}, {}]
>>> filter(None, L)
[1, 'A', [1, 2], 3.14, {'a': 1}]
>>>

如果复杂一点,要过滤列表的False的值过滤点,再将" "文件填充为"default",可以这样:

>>> L = [[], 1, "", None, False, {}, 3.14, " "]
>>> map(lambda x:x if x != " " else "default", filter(None, L))
[1, 3.14, 'default']

如果再复杂一点,即要去除值为假的元素,而且要去除诸如:' ', " "等多个空字符的元素,上面的就不行了。这个时候就必须做下处理,增加一个函数来处理内含一个或多个空字符的元素:

>>> L = [1,'',0,'A'," ", None,[1,2],False,3.14,[],{'a':1}, {}]
>>> filter(lambda s: s and (type(s) != str or len(s.strip()) > 0), L)
[1, 'A', [1, 2], 3.14, {'a': 1}]
>>>

以上这篇在Python中使用filter去除列表中值为假及空字符串的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python计算N天之后日期的方法
Mar 31 Python
Python selenium如何设置等待时间
Sep 15 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python实现简易数码时钟
Feb 19 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Django --Xadmin 判断登录者身份实例
Jul 03 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
Pandas加速代码之避免使用for循环
May 30 Python
Python下opencv库的安装过程及问题汇总
Jun 11 Python
python实现输出一个序列的所有子序列示例
Nov 18 #Python
Python中的四种交换数值的方法解析
Nov 18 #Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 #Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 #Python
详解Django配置优化方法
Nov 18 #Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 #Python
基于python操作ES实例详解
Nov 16 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
Python进行数据科学工作的简单入门教程
2015/04/01 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python实现机器人行走效果
2018/01/29 Python
Django框架安装方法图文详解
2019/11/04 Python
django中media媒体路径设置的步骤
2019/11/15 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
小学生手册家长评语
2014/04/16 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
JS数组去重详情
2021/11/07 Javascript
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python