Python学习-lambda表达式
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表达式的更多相关文章
- Java8 新特性学习 Lambda表达式 和 Stream 用法案例
Java8 新特性学习 Lambda表达式 和 Stream 用法案例 学习参考文章: https://www.cnblogs.com/coprince/p/8692972.html 1.使用lamb ...
- Python中Lambda表达式使用
软件环境 Python: 2.7.13; win10 Lambda描述 python 使用 lambda 表达式来创建匿名函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是 ...
- python 之Lambda表达式
python 的 lambda 表达式 python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写个简单的脚本来管理服务器时,我们就不用专门定义函数然后再写调用,使用 ...
- Python之lambda表达式的妙用
用法 Python的lambda表达式用于构建匿名函数,基本语法是在冒号左边放原函数的参数,可以有多个参数,用逗号隔开即可:冒号右边是返回值. >>> lambda x,y: (x+ ...
- Python中lambda表达式学习
lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...
- python之lambda表达式
lambda函数小结 1.lambda表达式: 以前看人家写一个长式子就能干一件我写一个函数干的事情觉得好帅,现在通过学习知道了lambda表达式其原理就是一个函数,而且是一个只能处理简单功能的函数. ...
- Python:lambda表达式的两种应用场景
01 lambda表达式 python书写简单,功能强大, 迅速发展成为 AI ,深度学习的主要语言.介绍Python中的lambda表达式,注意到,它只是一个表达式,不是语句啊. lambda的语法 ...
- Python的lambda表达式
使用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢? 1 python lambda会创建一个函数对象,但 ...
- Python:lambda表达式(匿名函数)
lambda表达式: 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中 ...
随机推荐
- poj 1050 To the Max 最大子矩阵和 经典dp
To the Max Description Given a two-dimensional array of positive and negative integers, a sub-rect ...
- 值类型的TryParse
值类型(Struct(如:DateTime).基本类型(如:double).枚举类型)的TryParse方法,通常可使用该方法将“字符串”转换为当前类型,并out出.比如:日期格式的字符串 转换为 ...
- 设计模式--中介者模式C++实现
中介者模式C++实现 1定义 用一个中介对象封装一系列的对象交互,中介者使各个对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的交互 2类图 组成说明 Mediator抽象中介者 ...
- Ansible 小手册系列 五(inventory 主机清单)
Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts 主机清单示例 mail.example. ...
- rsync的配置文件模板及简单介绍,命令及参数
必须知道推送有一个限速参数.--bwlimit=100 工作总必须要加.有三种模式,1.本地的模拟cp命令,在一个服务器2.远程的两个服务器之间,模拟scp3.以socket进程监听的方式启动rsyn ...
- bzoj1997
题解: 在圆上面的点能不能不交叉 和那一题差不多 http://www.cnblogs.com/xuanyiming/p/8110597.html 代码: #include<bits/stdc+ ...
- python3 堆排序
思路: 1.建立堆 2.得到堆顶元素,为最大元素 3.去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整重新使堆有序. 4.堆顶元素为第二大元素. 5.重复步骤3,直到堆变空. 动画 代码: de ...
- 【QT】QML的Mouse事件(MouseArea)详解
https://blog.csdn.net/ieearth/article/details/42082837
- 使用CGLib完成代理模式遇到的错误
错误堆栈信息: Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type ...
- volatile关键字解析(一)
引起线程并发问题,可以简单的总结为以下三条: 原子性问题 可见性问题 有序性问题(重排序问题) 原子性问题 什么是原子性? 原子性,即一个操作或者多个操作,要么全部执行并且执行过程中不会被任何因素打断 ...