在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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
python实现单向链表详解
Feb 08 Python
Python 打印中文字符的三种方法
Aug 14 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
python列表,字典,元组简单用法示例
Jul 11 Python
python3图片文件批量重命名处理
Oct 31 Python
python实现经典排序算法的示例代码
Feb 07 Python
Python实战之疫苗研发情况可视化
May 18 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python数据抓取3种方法总结
2021/02/07 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
食品安全检查制度
2014/02/03 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
旷课检讨书500字
2014/10/14 职场文书
大学教师个人总结
2015/02/10 职场文书
2015年度物流工作总结
2015/04/30 职场文书
微观世界观后感
2015/06/10 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书