Python filter过滤器原理及实例应用


Posted in Python onAugust 18, 2020

filter的语法:filter(函数名字,可迭代的变量)

其实filter就是一个“过滤器”:把【可迭代的变量】中的值,挨个地传给函数进行处理,那些使得函数的返回值为True的变量组成的迭代器对象就是filter表达式的结果

那filter的第一个参数,即函数的返回的值必须是bool类型,第二个参数必须是可迭代的变量:字符串、字典、元组、集合

其实从源码中也能大概看出filter是个什么东西

Python filter过滤器原理及实例应用

下面来看一些实际的代码示例:

打印列表中以“A”开头的名字

def first_name(x):
  if x.startswith("A"):
    return True
  else:
    return False
name = ["Alex","Hana","Anny","Sunny"]
f = filter(first_name, name)
a_name = list(f)
print("f:",f)
print("a_name:",a_name)

输出结果为:

f: <filter object at 0x10cb28700>
a_name: ['Alex', 'Anny']

下面再来一个filter和lambda结合的例子:

打印人员信息的字典中,年纪大于18的人

people = [
  {"name":"Alex","age":20},
  {"name":"Hana","age":19},
  {"name":"Anny","age":16},
  {"name":"Sunny","age":18},
]
f = filter(lambda p:p["age"]>18, people)
print(list(f))

输出结果为:

[{'name': 'Alex', 'age': 20}, {'name': 'Hana', 'age': 19}]

第二个参数也可以是字符串:

qq_mail = "123@qq.com"
f = filter(lambda m:m.isnumeric(),qq_mail)
print(list(f))

输出结果:

['1', '2', '3']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python数据化运营的重要意义
Nov 25 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
简单的命令查看安装的python版本号
Aug 28 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 Python
Python中zipfile压缩包模块的使用
May 14 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 Python
Python lambda表达式原理及用法解析
Aug 18 #Python
python 使用建议与技巧分享(四)
Aug 18 #Python
Python正则re模块使用步骤及原理解析
Aug 18 #Python
python使用建议技巧分享(三)
Aug 18 #Python
python3跳出一个循环的实例操作
Aug 18 #Python
OpenCV图片漫画效果的实现示例
Aug 18 #Python
Django DRF APIView源码运行流程详解
Aug 17 #Python
You might like
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python计算文本文件行数的方法
2015/07/06 Python
python实现将内容分行输出
2015/11/05 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
房屋租赁合同补充协议
2014/10/11 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
2016年元旦寄语
2015/08/17 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
Django基础CBV装饰器和中间件
2022/03/22 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers