在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实现的多线程端口扫描工具分享
Jan 21 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
python实现网站的模拟登录
Jan 04 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
Python算术运算符实例详解
May 31 Python
对pandas中apply函数的用法详解
Apr 10 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Python一键安装全部依赖包的方法
Aug 12 Python
python利用opencv实现颜色检测
Feb 23 Python
使用pytorch实现线性回归
Apr 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/03/02 国漫
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
Python 元类使用说明
2009/12/18 Python
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
python遍历目录的方法小结
2016/04/28 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
python获取多线程及子线程的返回值
2017/11/15 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
港湾网络笔试题
2014/04/19 面试题
入党积极分子介绍信
2014/01/17 职场文书
房屋转让协议书范本
2014/04/11 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
开学典礼致辞
2015/07/29 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫