lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

#求三个数的和
1 f = lambda x,y,z:x+y+x
print(f(1,2,3)) # f = lambda x,y,z:x+y+z
print(f(1,2,3)) #

在常规的def函数构造中,可以有任意数量的语句,并且在def函数定义中,首先需要给函数一个名称,对于lambda表达式而言,lambda是一个匿名函数,不需要给lambda构造提供任何名称。

lambda的构造更多的是为了方便,当你需要构造一个lambda函数时,请记住以下几点:

1、lambda是一个表达式,而不是一个语句,它不支持表达式块。

2、lambda在我们需要的地方进行定义,它不需要命名。

3、lambda不需要返回语句

具有单一参数的Lambda的构造

 #具有单一参数的lambda结构构造
x = [23,34,55]
func = lambda x:max(x)
print(func(x)) #

具有多个参数的Lambda构造:

 #具有多个参数的lambda构造
price,volume = 60,20
func = lambda price,volume:price/volume
print(func(price,volume)) #3.0

具有逻辑运算符的Lambda构造

 #具有逻辑运算符的Lambda构造
signal = 'SELL'
func = lambda x:x>50 and signal == 'BUY'
print(func(65)) #False

带有条件表达式的Lambda构造

 #带有条件表达式的Lambda构造
func = lambda x:'BUY' if x > 45 else 'SELL'
print(func(56)) #BUY

构建带有多个if...else语句的Lambda表达式

 #带有多个条件语句的lambda表达式
func = lambda x:'BUY' if x <= 30 else 'SELL' if x >= 70 else 'None'
print(func(78)) #SELL

将Lambda表达式与Map、Filter和Reduce功能一起使用

Lambda通常与map()、filter()和reduce()等函数结合在一起使用

 #lambda与map()映射函数一起使用
seq = [1,2,3,4,5]
func = map(lambda x:x**2,seq)
print(list(func)) #[1, 4, 9, 16, 25]
 #lambda与filter()滤波函数一起使用
Signals = ['Buy','Sell',None,'Sell','Sell','Sell']
func = filter(lambda x:x == 'Buy' or x == 'Sell',Signals)
print(list(func)) #['Buy', 'Sell', 'Sell', 'Sell', 'Sell']
 #lambda与reduce()函数一起使用
#在python 3中,reduce()函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里
# 如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数:
from functools import reduce
print(reduce((lambda x,y:x + y),[2,1.35,-2.4,3])) #3.95

参考:

1、https://www.quantinsti.com/blog/popular-python-learning-the-lambda-function/

2、https://blog.csdn.net/imzoer/article/details/8667176

Python学习-lambda表达式的更多相关文章

  1. Java8 新特性学习 Lambda表达式 和 Stream 用法案例

    Java8 新特性学习 Lambda表达式 和 Stream 用法案例 学习参考文章: https://www.cnblogs.com/coprince/p/8692972.html 1.使用lamb ...

  2. Python中Lambda表达式使用

    软件环境 Python: 2.7.13; win10 Lambda描述 python 使用 lambda 表达式来创建匿名函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是 ...

  3. python 之Lambda表达式

    python 的 lambda 表达式 python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写个简单的脚本来管理服务器时,我们就不用专门定义函数然后再写调用,使用 ...

  4. Python之lambda表达式的妙用

    用法 Python的lambda表达式用于构建匿名函数,基本语法是在冒号左边放原函数的参数,可以有多个参数,用逗号隔开即可:冒号右边是返回值. >>> lambda x,y: (x+ ...

  5. Python中lambda表达式学习

    lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...

  6. python之lambda表达式

    lambda函数小结 1.lambda表达式: 以前看人家写一个长式子就能干一件我写一个函数干的事情觉得好帅,现在通过学习知道了lambda表达式其原理就是一个函数,而且是一个只能处理简单功能的函数. ...

  7. Python:lambda表达式的两种应用场景

    01 lambda表达式 python书写简单,功能强大, 迅速发展成为 AI ,深度学习的主要语言.介绍Python中的lambda表达式,注意到,它只是一个表达式,不是语句啊. lambda的语法 ...

  8. Python的lambda表达式

    使用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢? 1 python lambda会创建一个函数对象,但 ...

  9. Python:lambda表达式(匿名函数)

    lambda表达式: 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中 ...

随机推荐

  1. WPF 回车转Tab实现跳转

    1.重写窗体的KeyDown事件 protected override void OnKeyDown(KeyEventArgs e) { if (e.Key == Key.Enter) { // Mo ...

  2. LInux50个基本命令

    cd:(切换)vim:(创建文件)   vi:编辑文件bc:(计算器)quit:退出计算器mkdir:(创建目录)   mkdir -p:递归建立目录rmdir:(删除目录)arch:(显示处理器X8 ...

  3. 重新学习MySQL数据库1:无废话MySQL入门

    重新学习Mysql数据库1:无废话MySQL入门 开始使用 我下面所有的SQL语句是基于MySQL 5.6+运行. MySQL 为关系型数据库(Relational Database Manageme ...

  4. (2) iOS开发之UI处理-UILabel篇

    我们经常要根据内容去动态计算控件的高度,比如一个UILabel控件,常常要显示多行内容,并且计算出总高度,如果每个UILabel要多行显示,都要写这么一段代码是非常痛苦的,看代码如下:     我想大 ...

  5. Linux服务器中木马(肉鸡)手工清除方法(转)

    首先剧透一下后门木马如下: (当然这是事后平静下来后慢慢搜出来的,那个时候喝着咖啡感觉像个自由人) 木马名称 Linux.BackDoor.Gates.5 http://forum.antichat. ...

  6. 双系统下ubuntu不能访问658GB卷,磁盘挂载失败。

    win10+ubuntu双系统出现以下错误: Error mounting /dev/sda5 at /media/captain/AC8CF85B8CF8218E: Command-line `mo ...

  7. Django 中设置分页页码,只显示当前页以及左右两页

    设置后的效果如下: Django 给我们提供了分页的功能:`Paginator`和`Page`类都是用来做分页的.他们在Django中的路径为:`from django.core.paginator ...

  8. PKUSC2013 BUG集锦

    如果今年考试真的是这个难度,那比的就是速度和准确度了…… a A:不明觉厉 B:推公式后不明觉厉 C:树的HASH D:不明觉厉 E:QAQ 复制代码'-'忘改'+' WA×1, F:QAQ 请输出 ...

  9. laravel怎么获取到public路径

    app_path() app_path函数返回app目录的绝对路径: $path = app_path(); 你还可以使用app_path函数为相对于app目录的给定文件生成绝对路径: $path = ...

  10. request.getPathInfo() 方法的作用

    request.getPathInfo(); 这个方法返回请求的实际URL相对于请求的serlvet的url的路径.(个人理解.) 比如,有一个Servlet的映射是这样配置的: <servle ...