lambda函数

本文介绍了lambda函数,也称为匿名函数,它使用lambda关键字创建。lambda表达式简洁且只能包含一个表达式,该表达式的计算结果即为函数返回值。尽管不能包含复合语句,但可以在表达式中调用其他函数。
  • lambda函数又称匿名函数,是使用lambda关键字定义的一种特殊函数
  • lambda函数通过lambda表达式声明
  • lambda表达式只可以包含一个表达式,该表达式的计算结果可以看作是函数的返回值,不允许包含复合语句,但在表达式中可以调用其他函数。
#<函数名>=lambda <参数列表> : <表达式>
>>>f = lambda x,y : x+y
>>>def f(x,y):
		return x+y
>>> data=['one','two','three','four','five','six','seven','eight','nine','ten']
>>> data.sort()
#按照首字母排序
>>> data
['eight', 'five', 'four', 'nine', 'one', 'seven', 'six', 'ten', 'three', 'two']
#按照字符串长度排序
>>> data.sort(key=lambda x : len(x))
>>> data
['one', 'six', 'ten', 'two', 'five', 'four', 'nine', 'eight', 'seven', 'three']
#按照最后一个字母排序
>>> data.sort(key=lambda x : x[-1])
>>> data
['one', 'five', 'nine', 'three', 'ten', 'seven', 'two', 'four', 'eight', 'six']

>>> x=['aas','wqee','as','dscwe','sdfw']
>>> sorted(x,key=lambda item : (len(item),item))
['as', 'aas', 'sdfw', 'wqee', 'dscwe']
#先按长度排序,长度一样的正常排序
Lambda函数是Python中的一种匿名函数,也称为lambda表达式。与常规的函数定义不同,lambda函数可以在一行内定义,适合用于简单的、临时性的函数需求[^1]。 ### 基本概念 Lambda函数是匿名的,即没有明确的函数名,使用`lambda`关键字定义,语法较为简洁。它可以有零个或多个参数,但表达式中只能有一个表达式;而普通函数使用`def`关键字定义,有明确的函数名,且函数体内可以有多个语句[^2]。 ### 语法 Lambda函数的基本语法为:`lambda 参数列表: 表达式`。例如: ```python add = lambda x, y: x + y result = add(3, 5) print(result) # 输出 8 ``` ### 常见用法 #### 作为参数传递给其他函数 Lambda函数常作为参数传递给像`map()`、`filter()`、`sorted()`等函数。例如: ```python numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # 输出 [1, 4, 9, 16, 25] ``` #### 用于简单的排序 ```python students = [('Alice', 20), ('Bob', 18), ('Charlie', 22)] sorted_students = sorted(students, key=lambda student: student[1]) print(sorted_students) # 输出 [('Bob', 18), ('Alice', 20), ('Charlie', 22)] ``` ### Lambda函数的参数捕获 Lambda函数可以直接使用可见的变量,其参数捕获规则如下: - `[]`:没有任何函数参数对象。 - `[=]`:以值传递方式捕获Lambda所在范围内的所有局部变量。 - `[&]`:以引用传递方法捕获Lambda所在范围内的所有局部变量。 - `this`:函数体可以使用Lambda所在类的成员变量。 - `[x, &y]`:`x`以值传递捕获,`y`以引用形式捕获。 - `[=, &z]`:`z`以引用形式捕获,其他变量以值传递捕获。 - `[&, x]`:`x`以值传递形式捕获,其他变量以引用形式捕获[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值