Python的lambda函数使用教程
Python中的lambda函数也叫做匿名函数,是一种不需要定义函数名称的小函数,通常用于一次性的表达式或函数传参。
本文将介绍Python的lambda函数的基本语法和用法。
### lambda函数的基本语法
lambda函数的基本语法如下:
lambda 参数: 表达式
其中,参数可以是多个,用逗号隔开,表达式是匿名函数的主体,可以是任何Python表达式,并且只能返回一个值。
例如,下面的lambda函数接受两个参数,返回这两个参数的求和:
lambda x, y: x + y
### lambda函数的应用场景
#### 1. 作为map()函数的参数
map()函数可以将一个可迭代对象的每个元素应用于一个函数,返回一个新的可迭代对象,例如:
lst = [1, 2, 3, 4] squared = list(map(lambda x: x ** 2, lst)) print(squared) # [1, 4, 9, 16]
上述例子中,我们传递了一个lambda函数作为map()函数的参数,将lst中的每个元素取平方。
#### 2. 作为filter()函数的参数
filter()函数可以将一个可迭代对象的每个元素应用于一个函数,返回一个新的可迭代对象,其中只包括应用后函数返回True的元素。例如:
lst = [1, 2, 3, 4] even = list(filter(lambda x: x % 2 == 0, lst)) print(even) # [2, 4]
上述例子中,我们传递了一个lambda函数作为filter()函数的参数,将lst中的每个元素都应用到函数中,只保留返回True的元素。
#### 3. 作为sorted()函数的参数
sorted()函数可以对一个可迭代对象进行排序,可以传递一个用于比较的函数参数。例如:
lst = [3, 2, 1, 4] sorted_lst = sorted(lst, key=lambda x: -x) print(sorted_lst) # [4, 3, 2, 1]
上述例子中,我们传递了一个用于排序的lambda函数,对lst进行降序排序。
#### 4. 作为返回值
lambda函数可以作为另一个函数的返回值,例如:
def get_multiplier(n):
return lambda x: x * n
double = get_multiplier(2)
triple = get_multiplier(3)
print(double(10)) # 20
print(triple(10)) # 30
上述例子中,我们定义了一个返回lambda函数的函数get_multiplier(),当get_multiplier(2)时返回一个将传入的参数乘以2的lambda函数,称其为double。当double(10)时,传入的10将被乘以2,返回20。同理当get_multiplier(3)时,返回一个将传入的参数乘以3的lambda函数,称其为triple。当triple(10)时,传入的10将被乘以3,返回30。
### 总结
本教程介绍了Python中lambda函数的基本语法和应用场景,包括作为map()、filter()、sorted()函数的参数,以及作为返回值。虽然lambda函数通常只出现在一次性的代码中,但它在一些场景下可以提高代码的简洁性和可读性,使代码更简洁优雅。
