前文说到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相关推荐

  1. python高阶函数filter_Python进阶系列连载(13)——Python内置高阶函数filter(上)...

    前言 进阶部分连载继续~ 如果还没看过我的入门连载部分,先看: 当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一遍~ 前文传送门: filter filter是什么意思呢? 我 ...

  2. python匿名函数调用_python3笔记十六:python匿名函数和高阶函数

    一:学习内容 lambda函数 map函数与reduce函数 filter函数 sorted函数 二:匿名函数-lambda 1.概念:不使用def这样的语句去定义函数,使用lambda来创建匿名函数 ...

  3. python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数

    跟光磊学Python开发-匿名函数函数和高阶函数 跟光磊学Python开发-匿名函数函数和高阶函数跟光磊学Python开发 匿名函数 匿名函数就是函数定义时没有名字的函数,也称为匿名表达式. 普通函数 ...

  4. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊...

    函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...

  5. Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数

    函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...

  6. python基础之常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  7. python高阶函数闭包装饰器_5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器...

    一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰 ...

  8. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  9. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及

    Python--函数式编程.高阶函数及内置函数 函数式编程 一.不可变数据:不用变量保存状态不修改变量 二.第一类对象:函数即"变量" 1.函数名可以当做参数传递 2.返回值可以是 ...

最新文章

  1. 什么阻碍了人工智能在制造业的应用?
  2. Session机制二(简易购物车案例)
  3. 如何接受上级指令_向上级领导汇报工作是经常的,想得赏识,了解如何接受上级的命令...
  4. NYOJ 298 点的变换(矩阵快速幂)
  5. C语言 | 基于MPU605(六轴传感器)的I2C实现LCD1602显示(代码类)
  6. qt弹簧教程_弹簧启动执行器教程
  7. 入职阿里啦!docker-e命令参数
  8. QT:不停的提示“文件已改变”
  9. Bootstrap Table列宽拖动的方法
  10. post .php程序,php程序内部post数据的方法
  11. 注意力机制介绍(attention)
  12. 需要一个用于Postgres的UUID生成器?这里有两种设置方法
  13. 两块stm32仿真protues串口通信程序
  14. 手机html在哪个文件里,手机录像在哪个文件夹
  15. 关于模电与数电的基础知识
  16. 比 rm -rf /* 还骚的 Linux 19 个装 B 的命令!
  17. 我对大学的憧憬||每个人都有自己的罗马
  18. 疯魔余承东:四年间打造令苹果、三星敬畏的华为手机
  19. 华农计算机科学转专业,转专业门槛有多高? 每8名新生就有一个想转专业
  20. 私域流量运营团队社群SOP流程计划

热门文章

  1. 理念高大上的智慧社区,要落地还得俯下身解决四个现实问题
  2. 计算机维护与维修课程简介,计算机维修与维护教学大纲.DOC
  3. mysql 嵌入式 c开发环境_【Linux】嵌入式C语言MySQL编程(libmysqlclient-dev使用)
  4. win8.1 计算机放在桌面,Win8.1怎么把开始屏幕中的程序放到桌面?
  5. 项目编译失败_Swift源码编译让底层更清晰
  6. 关于解决安装pwndbg问题sys.stderr.write(f“ERROR: {exc}“) /usr/bin/python3.5: No module named ensurepip
  7. Python基础教程:list深拷贝和浅拷贝
  8. python教程:有参装饰器
  9. python:关于py文件之间相互import的问题
  10. python eval()函数使用