在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缩进区别分析
Feb 15 Python
Python文件去除注释的方法
May 25 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
python实现12306火车票查询器
Apr 20 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
详解python中的线程与线程池
May 10 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
如何利用python给图片添加半透明水印
Sep 06 Python
python框架flask表单实现详解
Nov 04 Python
Python如何重新加载模块
Jul 29 Python
python 深度学习中的4种激活函数
Sep 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
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Django框架模板用法入门教程
2019/11/04 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
详解pandas映射与数据转换
2021/01/22 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
二年级语文教学反思
2014/02/02 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
小程序实现筛子抽奖
2021/05/26 Javascript