在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 06 Python
Python之文字转图片方法
May 10 Python
对pyqt5中QTabWidget的相关操作详解
Jun 21 Python
浅谈Python中函数的定义及其调用方法
Jul 19 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
基于python3的socket聊天编程
Feb 17 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Django CBV模型源码运行流程详解
Aug 17 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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
封装一个PDO数据库操作类代码
2009/09/09 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
JavaScript 指导方针
2007/04/05 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
带你了解python装饰器
2017/06/15 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
元宵节主持词
2014/03/25 职场文书
学校食堂标语
2014/10/06 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书