在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 相关文章推荐
Django框架中方法的访问和查找
Jul 15 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
python抓取网页内容并进行语音播报的方法
Dec 24 Python
pycharm新建一个python工程步骤
Jul 16 Python
详解python中各种文件打开模式
Jan 19 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
Pytorch 实现变量类型转换
May 17 Python
使用python创建股票的时间序列可视化分析
Mar 03 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中的一个中文字符串截取函数
2007/02/14 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
IE下JS读取xml文件示例代码
2013/08/05 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
python进行两个表格对比的方法
2018/06/27 Python
带你认识Django
2019/01/15 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
医院总经理岗位职责
2014/02/04 职场文书
地球一小时宣传标语
2014/06/24 职场文书
安全月宣传标语
2014/10/07 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
企业百日安全活动总结
2015/05/07 职场文书
昆虫记读书笔记
2015/06/26 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS