python的lambda-map-reduce

红太狼 2022-12-27 08:23 260阅读 0赞

lambda作为一个表达式,定义了一个匿名函数:lambda x:f(x),冒号左边的是入口参数,右边的是函数体,可以用函数表示:

  1. def f(x):
  2. 函数体
  3. return f(x)

举例

  1. lambda x:x**2

他的作用等同于:

  1. def f(x):
  2. return x**2

lambda单独使用:

  1. tt=lambda x:x**2
  2. print(tt(9))
  3. #81

lambda作为隐函数使用:
结合map:

  1. li=[1,2,3,4,5]
  2. tt=map(lambda x:x**2,li)
  3. for x in tt:
  4. print(x)

输出:

  1. 1
  2. 4
  3. 9
  4. 16
  5. 25

结合reduce:

  1. from functools import reduce
  2. li=[1,2,3,4,5]
  3. tt=reduce(lambda x,y:x*y,li)
  4. print(tt)

输出:

  1. 120

map和reduce是python的高阶函数:map(映射)用于把一组键值对映射成一组新的键值对,Reduce(归约)用于把一组键值对归约为一个单值
map(f,[x1,x2,x3])=[f(x1),f(x2),f(x3)],对于Iterable的每一个元素代入f函数获取返回值:

  1. def doubl(x):
  2. return x*2
  3. li=[1,2,3,4,5]
  4. res=map(doubl,li)
  5. print(res)
  6. print(type(res))
  7. for x in res:
  8. print(x)

输出为:

  1. <map object at 0x000002AF26823148>
  2. <class 'map'>
  3. 2
  4. 4
  5. 6
  6. 8
  7. 10

reduce(f,[x1,x2,x3])=f(x1,f(x2,f(x3)))

  1. from functools import reduce
  2. def doubl(x,y):
  3. return x*y
  4. li=[1,2,3,4,5]
  5. res=reduce(doubl,li)
  6. print(res)
  7. print(type(res))

输出为:

  1. 120
  2. <class 'int'>

需要注意:python3不再支持reduce,需要从functools导入

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python

    Python是一种高级、解释型和通用型编程语言。它由Guido van Rossum于1989年圣诞节期间在荷兰阿姆斯特丹发明。 Python语言以其简洁明了的语法,广泛应用

    相关 Python||Python变量类型

    Python 变量类型 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中

    相关 PythonPython2与Python3不同

    前言 Python作为一种连接各种语言的胶水语言,以其自身优势在系统开发、web开发、网络爬虫、数据挖掘、深度学习等多方面均有广泛使用,Python也有其特殊之处:Pyt