欢迎访问宙启技术站
智能推送

Python的lambda函数使用教程

发布时间:2023-05-27 19:32:25

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函数通常只出现在一次性的代码中,但它在一些场景下可以提高代码的简洁性和可读性,使代码更简洁优雅。