在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环境路径配置以及命令行运行脚本
Apr 02 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
详解Django配置优化方法
Nov 18 Python
python判断无向图环是否存在的示例
Nov 22 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
python GUI模拟实现计算器
Jun 22 Python
Python错误的处理方法
Jun 23 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python 通过使用Yolact训练数据集
Apr 06 Python
Python中else的三种使用场景
Jun 16 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
php封装的验证码类分享
2017/02/26 PHP
PHP函数积累总结
2019/03/19 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
Python实现粒子群算法的示例
2021/02/14 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
应届生求职信
2014/05/31 职场文书
入党综合考察材料
2014/06/02 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
神农溪导游词
2015/02/11 职场文书
Python音乐爬虫完美绕过反爬
2021/08/30 Python
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电