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编写一个简单的FUSE文件系统的教程
Apr 02 Python
python实现井字棋游戏
Mar 30 Python
Python利用Nagios增加微信报警通知的功能
Feb 18 Python
python实现多线程的两种方式
May 22 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Python 日期与时间转换的方法
Aug 01 Python
Python unittest装饰器实现原理及代码
Sep 08 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
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
keras 多任务多loss实例
2020/06/22 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
weblogic面试题
2016/03/07 面试题
见习期自我鉴定
2013/11/07 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
老师对学生的寄语
2014/04/09 职场文书
小区文明倡议书
2014/05/16 职场文书
建筑安全生产责任书
2014/07/22 职场文书
学雷锋主题班会教案
2015/08/13 职场文书