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中glob模块查找文件路径的用法
Jul 05 Python
python获取list下标及其值的简单方法
Sep 12 Python
Python内置模块turtle绘图详解
Dec 09 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
python实现图片文件批量重命名
Mar 23 Python
python求质数的3种方法
Sep 28 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
解决Python中回文数和质数的问题
Nov 24 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
详解python的super()的作用和原理
Oct 29 Python
python re模块和正则表达式
Mar 24 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
介绍几个array库的新函数 php
2006/12/29 PHP
php中session使用示例
2014/03/29 PHP
php strftime函数的详细用法
2018/06/21 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
jquery tools之tooltip
2009/07/25 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
JavaScript字符串对象
2017/01/14 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
Python里隐藏的“禅”
2014/06/16 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
python爬虫基础知识点整理
2020/06/02 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
德国购买健身器材:AsVIVA
2017/08/09 全球购物
某个公司的Java笔面试题
2016/03/11 面试题
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
《花瓣飘香》教学反思
2014/04/15 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
工作失职检讨书
2015/01/26 职场文书
致运动员赞词
2015/07/22 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL