python高阶函数filter_python 高阶函数之filter
前文说到python高阶函数之map,相信大家对python中的高阶函数有所了解,此次继续分享python中的另一个高阶函数filter。
先看一下filter() 函数签名
>>> help(filter)
Help on class filter in module builtins:
class filter(object)
| filter(function or None, iterable) --> filter object
|
| Return an iterator yielding those items of iterable for which function(item)
| is true. If function is None, return the items that are true.
和map()函数类似,filter()也是接收一个函数和一个序列作为参数,和map() 不同的是,filter把传入的函数依次作用于序列中的每一个元素,并根据其返回值是True 还是 False 来决定是否保留该元素,达到过滤的效果。
下面举例说明:
从一个list文件列表中筛选出已 .py 结尾的文件,文件列表如下:
files = ["report.py","log.txt", "logger.py",
"config.txt", "main.py"]
首先定义一个函数,其功能是根据传入的文件判断
>>> def is_python_file(file_name):
... if file_name.endswith(".py"):
... return True
... else:
... return False
...
应用filter函数
>>> list(filter(is_python_file, files))
['report.py', 'logger.py', 'main.py']
以上就达到了筛选的功能,很牛吧,不用自己再写一个 for 循环进行判断了。
第一个参数传入 is_python_file 函数对象
第二个参数传入 序列 files列表
多说一句,有的小伙伴对传入的参数函数对象(没加括号)可能有疑惑,如果函数加(),表示函数执行的结果传入 filter
如果感觉定义一个简单的函数麻烦,我们可以使用匿名函数lambda
lambda f:f.endswith(".py")
>>> list(filter(lambda f:f.endswith(".py"), files))
['report.py', 'logger.py', 'main.py']
其实还可以使用列表推导式
>>> [ f for f in files if f.endswith(".py") ]
['report.py', 'logger.py', 'main.py']
python中其他的高阶函数使用方式也是类似的,比如sorted、reduce、reversed。内置常用高阶函数就分享到这里啦,更多分享请关注微信公众号
python高阶函数filter_python 高阶函数之filter相关推荐
- python高阶函数filter_Python进阶系列连载(13)——Python内置高阶函数filter(上)...
前言 进阶部分连载继续~ 如果还没看过我的入门连载部分,先看: 当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一遍~ 前文传送门: filter filter是什么意思呢? 我 ...
- python匿名函数调用_python3笔记十六:python匿名函数和高阶函数
一:学习内容 lambda函数 map函数与reduce函数 filter函数 sorted函数 二:匿名函数-lambda 1.概念:不使用def这样的语句去定义函数,使用lambda来创建匿名函数 ...
- python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数
跟光磊学Python开发-匿名函数函数和高阶函数 跟光磊学Python开发-匿名函数函数和高阶函数跟光磊学Python开发 匿名函数 匿名函数就是函数定义时没有名字的函数,也称为匿名表达式. 普通函数 ...
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊...
函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...
- Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数
函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...
- python基础之常用的高阶函数
前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...
- python高阶函数闭包装饰器_5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器...
一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰 ...
- Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()
一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...
- python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及
Python--函数式编程.高阶函数及内置函数 函数式编程 一.不可变数据:不用变量保存状态不修改变量 二.第一类对象:函数即"变量" 1.函数名可以当做参数传递 2.返回值可以是 ...
最新文章
- 什么阻碍了人工智能在制造业的应用?
- Session机制二(简易购物车案例)
- 如何接受上级指令_向上级领导汇报工作是经常的,想得赏识,了解如何接受上级的命令...
- NYOJ 298 点的变换(矩阵快速幂)
- C语言 | 基于MPU605(六轴传感器)的I2C实现LCD1602显示(代码类)
- qt弹簧教程_弹簧启动执行器教程
- 入职阿里啦!docker-e命令参数
- QT:不停的提示“文件已改变”
- Bootstrap Table列宽拖动的方法
- post .php程序,php程序内部post数据的方法
- 注意力机制介绍(attention)
- 需要一个用于Postgres的UUID生成器?这里有两种设置方法
- 两块stm32仿真protues串口通信程序
- 手机html在哪个文件里,手机录像在哪个文件夹
- 关于模电与数电的基础知识
- 比 rm -rf /* 还骚的 Linux 19 个装 B 的命令!
- 我对大学的憧憬||每个人都有自己的罗马
- 疯魔余承东:四年间打造令苹果、三星敬畏的华为手机
- 华农计算机科学转专业,转专业门槛有多高? 每8名新生就有一个想转专业
- 私域流量运营团队社群SOP流程计划
热门文章
- 理念高大上的智慧社区,要落地还得俯下身解决四个现实问题
- 计算机维护与维修课程简介,计算机维修与维护教学大纲.DOC
- mysql 嵌入式 c开发环境_【Linux】嵌入式C语言MySQL编程(libmysqlclient-dev使用)
- win8.1 计算机放在桌面,Win8.1怎么把开始屏幕中的程序放到桌面?
- 项目编译失败_Swift源码编译让底层更清晰
- 关于解决安装pwndbg问题sys.stderr.write(f“ERROR: {exc}“) /usr/bin/python3.5: No module named ensurepip
- Python基础教程:list深拷贝和浅拷贝
- python教程:有参装饰器
- python:关于py文件之间相互import的问题
- python eval()函数使用