在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中删除文件的程序代码
Mar 13 Python
python time模块用法实例详解
Sep 11 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
Python 读写文件的操作代码
Sep 20 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python实现logistic分类算法代码
Feb 28 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
Python小白不正确的使用类变量实例
May 29 Python
Python grpc超时机制代码示例
Sep 14 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/09/20 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
利用Python爬虫给孩子起个好名字
2017/02/14 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Python实现数字的格式化输出
2020/08/01 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
SQL面试题
2013/12/09 面试题
文言文形式的学生求职信
2013/12/03 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
运动会演讲稿300字
2014/08/25 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
十八大标语口号
2014/10/09 职场文书
监理中标通知书
2015/04/16 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
python cv2图像质量压缩的算法示例
2021/06/04 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang