转载地址:http://blog.csdn.net/dbanote/article/details/8912250

1、lambda()

lambda()是Python里的匿名函数,其语法如下:

lambda [arg1[, arg2, ... argN]]: expression

下面是个1+2=3的例子

>>> fun = lambda x,y:x+y
>>> fun(1,2)
3
>>> (lambda x,y:x+y)(1,2)
3

2、filter()

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:

>>> def f(x): return x % 2 != 0 and x % 3 != 0 
>>> filter(f, range(2, 25)) 
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a' 
>>> filter(f, "abcdef") 
'bcdef'

3、map()

map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:
>>> def cube(x): return x*x*x 
>>> map(cube, range(1, 11)) 
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x 
... 
>>> map(cube , "abcde") 
['aa', 'bb', 'cc', 'dd', 'ee']
另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:
>>> def add(x, y): return x+y 
>>> map(add, range(8), range(8)) 
[0, 2, 4, 6, 8, 10, 12, 14]

4、reduce()

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:
>>> def add(x,y): return x + y 
>>> reduce(add, range(1, 11)) 
55 (注:1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20) 
75 (注:1+2+3+4+5+6+7+8+9+10+20)

5、综合例子

下面是两个综合利用以上四个函数的例子:
例子1:计算5!+4!+3!+2!+1!
a=[5,4,3,2,1]
def fun(x):
    result = 1    
    while x >= 1:
        result = result * x
        x = x - 1
    return result
print reduce(lambda x,y:x+y, map(fun,a))
例子2:将100以内的质数挑选出来
import math  
def isPrime(n):  
    if n <= 1:  
      return False 
    for i in range(2, int(math.sqrt(n)) + 1):  
      if n % i == 0:  
        return False

return True

print filter(isPrime,range(1,100))

[Python] 函数lambda(), filter(), map(), reduce()相关推荐

  1. python3函数中lambda/filter/map/reduce的用法

    lambda/filter/map/reduce这几个函数面试中很肯定会用到,本篇主要介绍这几个函数的用法. 1.lambda 匿名函数,用法如下: # lambada 参数,参数,参数 : 返回的表 ...

  2. Python高级特性: 函数编程 lambda, filter,map,reduce

    一.概述 Python是一门多范式的编程语言,它同时支持过程式.面向对象和函数式的编程范式.因此,在Python中提供了很多符合 函数式编程 风格的特性和工具. 以下是对 Python中的函数式编程 ...

  3. Python内建函数之——filter,map,reduce

    原文链接:http://blog.csdn.net/prince2270/article/details/4681299 在讲述filter,map和reduce之前,首先介绍一下匿名函数lambda ...

  4. python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...

    python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda.map和reduce高阶函数的 ...

  5. Python基础(六)—函数式编程(内部函数、闭包、lambda、filter/map/reduce/sorce、偏函数)

    内部函数 Python中函数的作用域由def关键字界定,函数内的代码访问变量的方式是从其所在层级由内向外,若往外直至全局作用域都查找不到的话代码会抛异常. 主要看以下代码的差别~~ "&qu ...

  6. python中 lambda, map ,filter ,reduce讲解

    lambda 是匿名函数 同来表达简单的函数 使用lambda函数应该注意的几点: lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数 lambda参数列表可以包含多个参数,如 lam ...

  7. Python内置函数filter, map, reduce

    filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...

  8. Python学习之Part09.高阶函数filter(),map(),reduce(),sorted()

    1.高阶函数 一个函数作为参数传给另外一个函数: 一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归) # abs()用来求一个数的绝对值 # 将abs函数赋值,则f==abs f = a ...

  9. filter,map,reduce,apply函数

    (1)lambda     lambda是Python中一个很有用的语法,它允许你快速定义单行最小函数.类似于C语言中的宏,可以用在任何需要函数的地方. 基本语法如下: 函数名 = lambda ar ...

最新文章

  1. linux vi 清除所有,Vi命令:如何删除全部内容
  2. 火爆国外的一份PyCharm快捷键和Python代码速查表
  3. SAP MM供应商主数据表
  4. Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事
  5. Android HandlerThread 源码分析
  6. <table/>设置列宽度无效的问题
  7. MAC启动redis的目录
  8. 软件工程练习:模块化,单元测试,回归测试,TDD
  9. jparepository查询所有_jparepository 怎样自定义查询
  10. 互斥锁和条件变量【原创总结】
  11. 8086汇编语言入门-HelloWorld
  12. 学习bcgcontrol1
  13. 转盘抽奖的案例-----
  14. macOS Catalina10.15.4安装HP Laser Jet1020打印机驱动方法
  15. WPF 设置TextBox和PasswordBox设置光标位置
  16. 如何利用kali暴力破解WiFi密码
  17. ubuntu18打开网页慢的问题
  18. matlab菜单栏中的Revolve,NURBS matlab工具箱
  19. ftp 下载 工具,5款小白都能使用的ftp 下载 工具
  20. 用PYTHON做一个简单的游戏脚本(基础,详细)

热门文章

  1. leetcodeT14-最长公共前缀(两种解法+图解)
  2. Spring——bean生命周期
  3. Springboot Vue Login(从零开始实现Springboot+Vue登录)
  4. CAD编辑工具中如何设置图纸的比例
  5. Redis基础数据结构
  6. openstack部署中的错误总结
  7. 审计导致select * 报ORA-01435: user does not exist
  8. sphinx (coreseek)——2、区段查询实例
  9. Bluetooth handsfree 和 headset 区别
  10. 需做勿畏拖 效能更轻松