python中lambda函数的使用

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中lambda函数的使用相关的知识,希望对你有一定的参考价值。

前言:

lambda函数也叫匿名函数,即,函数没有具体的名称。


基础

lambda语句构建的其实是一个函数对象。匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

lambda(a,b: a+b)
#关键字lambda表示匿名函数,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。

lambda优点:


1、使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
2、对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
3、使用lambda在某些时候让代码更容易理解。

举一个简单的例子:
def f(x):
  return x**2
  print f(4)

Python中使用lambda的话,写成这样
g = lambda x : x**2
print g(4)

二、进阶-内置函数

1、map()
遍历序列,对序列中每个元素进行操作,最终获取新的序列。

li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
print(list(new_list))
结果输出为:
>>>[12,24,36]

2、reduce()
对于序列内所有元素进行累计操作

from functools import reduce

li = [11,22,33]
result = reduce(lambda a,b:a+b,li)
# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值
print(result)
输出结果:
>>>66

3、filter()
对于序列中的元素进行筛选,最终获取符合条件的序列

li = [11,22,33]
new_list = filter(lambda a:a>22,li)
print(list(new_list))
#filter第一个参数为空,将获取原来序列
输出结果:
>>>[33]

以上是关于python中lambda函数的使用的主要内容,如果未能解决你的问题,请参考以下文章

python中的zipmapreduce lambda函数的使用

Python单行函数lambda(小米)加reducemapfilter(步枪)应用

python中匿名函数lambda如何用

Python中除了lambda函数能实现一句话程序,还有什么方式能够实现呢?

Python匿名函数lambda是什么?为什么要匿名?怎么用?

在单个AWS Lambda中使用两个python函数boto3