目录
(一)应用场景
(二)lambda 语法
(三)示例分析
(四)lambda参数形式
4.1 无参数
4.2 一个参数
4.3 默认参数
4.4 可变参数 :*args
4.5 可变参数 :**kargs
(五)lambda的应用
5.1 带判断的lambda
5.2 列表数据按照字典key的值排序
(一)应用场景
在Python中,lambda是一个关键字,用于定义小的匿名函数。
这些函数也称为“lambda函数”或“lambda表达式”。
lambda函数主要用于需要一个函数作为参数的函数式编程场景,或者需要定义一个简单的函数而不需要使用def
语句。
lambda 函数特点:
- lambda 函数是匿名的,它们没有函数名称,只能通过赋值给变量或作为参数传递给其他函数来使用。
- lambda 函数通常只包含一行代码,这使得它们适用于编写简单的函数。
(二)lambda 语法
lambda arguments: expression
- lambda 是 Python 的关键字,用于定义 lambda 函数。
- arguments` 是函数的参数列表,和`def`中定义函数时一样,只是没有变量名。
- expression` 是一个表达式,这个表达式的值会被返回。
(三)示例分析
示例:计算 a + b
- 方法一:函数实现
def add(a,b):
return a +b
result = add(1,2)
print(result)
- 方法二:lambda实现
res = lambda a,b : a + b
print(res(1,2))
(四)lambda参数形式
4.1 无参数
- 以下的 lambda 函数没有参数:
f = lambda: 100
print(f()) # 输出: 100
4.2 一个参数
- 以下的 lambda 函数有一个参数:
fn1 = lambda a:a
print(fn1('hello world')) # 输出: hello world
又或如下:
x = lambda a : a + 10
print(x(5))
4.3 默认参数
- 以下的 lambda 函数默认参数:
fn1 = lambda a,b,c=100: a + b + c
print(fn1(10,20)) # 输出: 130
4.4 可变参数 :*args
在Python中,lambda 函数通常用于定义简单的匿名函数
fn2 = lambda *args : args
print(fn2(10)) # 输出:(10,)
print(fn2(10,20)) # 输出:(10, 20)
print(fn2(10,20,30)) # 输出:(10, 20, 30)
4.5 可变参数 :**kargs
**kargs允许你传入任意数量的关键字参数到一个函数中,并将这些参数存储在一个字典中。
fn3 = lambda **kwargs : kwargs
print(fn3(name = 'python')) # 输出:{'name': 'python'}
print(fn3(name = 'python',age = 20))# 输出:{'name': 'python', 'age': 20}
(五)lambda的应用
5.1 带判断的lambda
在Python中,lambda表达式用于定义简单的匿名函数。虽然 lambda通常用于执行简单的操作,但它也可以包含基本的判断逻辑,比如使用条件表达式(也称为三元运算符)。
条件表达式在Python中的语法是 value_if_true if condition else value_if_false
。你可以在 lambda 函数中使用这种语法来执行基于条件的判断。
# 定义一个lambda函数,如果x大于y则返回x,否则返回y
fn1 = lambda x,y: x if x > y else y
# 测试lambda函数
print(fn1(5,10)) # 输出: 10
print(fn1(7,5)) # 输出: 7
print(fn1(-5,0)) # 输出: 0
5.2 列表数据按照字典key的值排序
在Python中,lambda函数常常与sorted函数一起使用,以对列表中的元素进行自定义排序。假设你有一个包含字典的列表,并且你想根据字典中的某个键(key)的值来进行排序。
- 首先,创建一个包含字典的列表:
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 20},
{'name': 'Charlie', 'age': 22},
{'name': 'David', 'age': 23},
]
- 如果想根据
'age'
键的值进行升序排序,可以这样做:
data.sort(key=lambda x : x['age'])
print(data)
- 输出将会是:
[
{'name': 'Bob', 'age': 20},
{'name': 'Charlie', 'age': 22},
{'name': 'David', 'age': 23},
{'name': 'Alice', 'age': 25}
]
- 如果想进行降序排序,你可以使用
reversed
函数或者传递reverse=True
给sorted
函数: