python基础(补充):lambda匿名函数,用了的,都说好!
lambda函数又叫做“匿名函数”。当你完成一件小工作时,直接使用该函数可以让你的工作得心应手。
lambda函数介绍
在Python中,定义函数使用的是def关键字,但是通过lambda关键字来定义的函数,称之为“匿名函数”。
函数的语法如下:
- lambda 参数:表达式
函数用法如下:
- ①先写lambda关键字,②然后依次写匿名函数的参数,多个参数之间用逗号连接,③接着是一个冒号,④冒号后面写的是返回的表达式。
需要注意以下几点:
- lambda函数能接收任意多个参数,但只能返回一个表达式的值;
- lambda函数是一个函数对象,如果直接赋值给一个变量,这个变量就成了一个函数对象;
当待处理的业务符合匿名函数的特点:多个参数和一个返回值,并且该函数只在一个地方使用,不在其他地方复用,建议使用lambda函数。
lambda函数的简单使用
下面我们写了带有一个参数的匿名函数。
print(lambda x: x + 2)
# <function <lambda> at 0x000001CFE5851EA0>
接着,使用type()函数打印该函数的类型,得到的是一个function函数对象。
print(type(lambda x: x + 2))
# <class 'function'>
将匿名函数传递给一个参数,调用匿名函数。
注意:通过这种方式调用匿名函数,变量名+括号。
a = lambda x: x + 2
print(a(2))
# 4
lambda函数的不同形式
lambda函数中可以不传参数,可以传递一个参数,二个参数,或者传递多个参数。
无参数的lambda函数
不管是有参数还是无参数,调用一定是变量名+括号,即这个括号不能省略,否则返回的是一个function函数对象。
In[1]:x1 = lambda: 88
print(x1())
# 88
单参数的lambda函数
单参数指的是匿名函数中只有一个参数,下面来看一个例子。
lambda x: x + 2
print(b(8))
# 10
多参数的lambda函数
多参数指的是匿名函数中有多个参数,下面来看一个例子。
c = lambda x, y: x * y
print(c(2, 5))
# 10
带分支的lambda函数
有时候我们可以根据给定的参数,来判断接下来需要做什么,这就需要匿名函数结合分支表达式使用了。
d = lambda x: x - 1 if x > 5 else x + 1
print(d(9)) # 8
print(d(3)) # 4
lambda函数与Python内置函数配合使用
其实lambda函数还可以与sorted函数,map函数和filter函数,联合使用。这里以sorted函数为例进行举例说明。
对列表里的字典排序
l = [{'a': 1, 'b': 41}, {'a': 1111, 'b': 24}, {'a': 1111, 'b': 32}]
l_s = sorted(l, key=lambda x: x["b"], reverse=True)
print(l_s)
# [{'a': 1, 'b': 41}, {'a': 1111, 'b': 32}, {'a': 1111, 'b': 24}]
对字典进行key排序
m = {'a': 25, 'c': 27, 'b': 20, 'd': 22}
m_s = sorted(m.items(), key=lambda x: x[0])
print(m_s)
# [('a', 25), ('b', 20), ('c', 27), ('d', 22)]
对字典进行values排序
n = {'a': 25, 'c': 27, 'b': 20, 'd': 22}
n_s = sorted(n.items(), key=lambda x: x[1])
print(n_s)
# [('b', 20), ('d', 22), ('a', 25), ('c', 27)]
其它用法
print(list(map(lambda x: x * x, range(1, 11))))
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print(list(filter(lambda x: x % 2 == 0, range(1, 11))))
# [2, 4, 6, 8, 10]
python基础(补充):lambda匿名函数,用了的,都说好!的更多相关文章
- 『Python基础-14』匿名函数 `lambda`
匿名函数和关键字lambda 匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数 在Python中,如果要声匿名函数,则需要使用lambda关键字 使用lambda声明的匿名函数能接收任何 ...
- Python 进阶 之 lambda 匿名函数
lambda 是个匿名函数,通常用于简单判断或者处理,例如判断一个数的奇偶性,过滤字符串,逻辑运算等等. lambda表达式: >>>lambda x:x*x >>> ...
- python学习之lambda匿名函数
1 Python支持运行时使用“lambda”建立匿名函数(anonymous functions that are not bound to a name). python "lambda ...
- python基础一 day16 匿名函数
def add(x,y): return x+y add = lambda x,y:x+yprint(add(1,2)) dic={'k1':10,'k2':100,'k3':30}def func( ...
- Python基础之yield,匿名函数,包与re模块
一.表达式形式的yield 1.另外一种形式的yield def deco(func): def wrapper(*arges, **kwargs): res = func(*arges, **kwa ...
- python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...
- 《Python》 内置函数补充、匿名函数、递归初识
一.内置函数补充: 1.数据结构相关(24): 列表和元祖(2):list.tuple list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素). tuple:将一个可迭代对象转 ...
- Python 之父为什么嫌弃 lambda 匿名函数?
Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- 十六. Python基础(16)--内置函数-2
十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...
随机推荐
- Flutter 获取本地图片并剪切
安装依赖 dependencies: ... image_picker: image_cropper android\app\src\main\AndroidManifest.xml 将UCropAc ...
- Dart: path库
path库pub地址 安装: dependencies: path: 使用: import 'dart:io'; import 'package:path/path.dart' as path; ma ...
- 超强嘉宾阵容——NGK Global启动大会圆满举办
近日,由星盟全球投资公司.灵石团队联合主办的NGK Global全球生态启动大会圆满开幕.大会汇集区块链领域.金融领域.密码学领域.智能算法领域等众多大咖,和NGK Global全球价值共识者共聚一堂 ...
- 使用OWASP Dependency-Check对应用做个安检
俗话说"人怕出名猪怕壮",当系统小有名气以后就会被一些黑客盯上,三天两头的用各种漏洞扫描工具做渗透,如果不希望某天你负责的系统因为安全问题而出名,那就提前行动起来吧,这就是今天要讲 ...
- tcp粘包情况分析
1 什么是粘包现象 TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾.在tcp长连接时,发送端发到buffer里面,接收端也有个buffe ...
- LeetCode392. 判断子序列
原题链接 1 class Solution: 2 def isSubsequence(self, s: str, t: str) -> bool: 3 lens,lent = len(s),le ...
- MySQL:基本操作与常用函数
基本操作 这里的基本操作为添加.修改.删除数据表中的记录. INSERT语句 -- 通用INSERT: INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, . ...
- pyhont+unittest的测试固件
在执行一条自动化测试用例时需要做一些测试前的准备工作和测试后的清理工作,如:创建数据库链接.启动服务进程.打开文件.打开浏览器.测试环境的清理.关闭数据链接.关闭文件等.如果每执行一条用例都需要编写上 ...
- monkey稳定性测试的步骤及策略
1.adb的作用是什么?adb的全称:android debug bridge 安卓调试桥梁,包含在 Android SDK 平台工具软件包中.通过该命令与设备进行通信,以便进行调试adb可以同时管理 ...
- CCF(URL映射:80分):字符串处理+模拟
URL映射 CCF201803-3 #include<iostream> #include<cstdio> #include<cstring> #include&l ...