在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的random模块及加权随机算法的python实现方法
Jan 04 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
浅谈django的render函数的参数问题
Oct 16 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
Python2与Python3的区别实例分析
Apr 11 Python
python celery分布式任务队列的使用详解
Jul 08 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
python openCV自制绘画板
Oct 27 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将数据导入到Foxmail的实现代码
2010/09/05 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
关于VPN
2012/06/10 面试题
母亲七十大寿答谢词
2014/01/18 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
MySQL数据库简介与基本操作
2022/05/30 MySQL