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. sprites.png雪碧图

    长时间不用把精灵图怎么用给忘了... 一.PC端 给所用到精灵图的元素设置background:url(sprites.png路径);  background-position: -x -y; 其中: ...

  2. 利用python 模块读取csv文件信息

    还有一个比较简单的方法 # -*- coding=utf-8 -*- import pandas as pddf = pd.read_csv("20170320094630.csv" ...

  3. [myeclipse]@override报错问题

    @Override是JDK5 就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6 修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Ove ...

  4. HDU-4714-贪心

    Tree2cycle Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)Tot ...

  5. 为红米Note 5 Pro编译Lineage OS 15.1的各种坑

    安装了ubuntu虚拟机,直接上网repo sync,网速特别慢,中间断了好多次,记得是3天吧,总算是下载成功了.中途还在淘宝上买过付费的VPN代理软件,有时候会打开代理来尝试,也是不太稳定.好歹第1 ...

  6. IOS-下载动画

    就2小时教会你抽丝剥茧CAAnimation核心动画之精美的下载动画 header 设计灵感 设计此效果的作者 Nick; images 开始之前你需要了解的 先上一张CAAnimation层次图: ...

  7. Python写入CSV文件的问题

    这篇文章主要是前几天我处理数据时遇到的三个问题: Python写入的csv的问题 Python2与Python3处理写入写入空行不同的处理方式 Python与Python3的编码问题 其实上面第3个问 ...

  8. Chunky Monkey

    猴子吃香蕉可是掰成好几段来吃哦! 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4 ...

  9. 多进程回声服务器/客户端【linux】

    并发服务器端 #include <unistd.h> #include <stdio.h> #include <sys/wait.h> #include <c ...

  10. Upgrade Bash on Ubuntu from 14.04 to 16.04

    过程 1 sudo -S apt-mark hold sudo sudo -S apt-mark hold procps sudo -S apt-mark hold strace 2 sudo do- ...