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实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
Python 的描述符 descriptor详解
Feb 27 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
使用Python制作新型冠状病毒实时疫情图
Jan 28 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
使用keras根据层名称来初始化网络
May 21 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
wxPython实现分隔窗口
2019/11/19 Python
python实现感知机模型的示例
2020/09/30 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
大学同学聚会邀请函
2014/01/29 职场文书
森林防火工作方案
2014/02/14 职场文书
小学少先队活动方案
2014/02/18 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
聘用意向书
2014/07/29 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2016新年感言
2015/08/03 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
Redis数据同步之redis shake的实现方法
2022/04/21 Redis
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技