在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中通过预先编译正则表达式提高效率
Sep 25 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
python协程之动态添加任务的方法
Feb 19 Python
Python分支语句与循环语句应用实例分析
May 07 Python
简单了解python中对象的取反运算符
Jul 01 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
May 29 Python
Python数据可视化图实现过程详解
Jun 12 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学习之简单计算器实现代码
2011/06/09 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
js日历功能对象
2012/01/12 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
python列表list保留顺序去重的实例
2018/12/14 Python
django 消息框架 message使用详解
2019/07/22 Python
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
年会主持词结束语
2014/03/27 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
欢迎家长标语
2014/10/08 职场文书
安徽导游词
2015/02/12 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android