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

Python中的Lambda函数介绍及使用方法

发布时间:2023-05-30 22:35:05

Python中的Lambda函数也叫做匿名函数,是一种不需要定义函数名的特殊函数。Lambda函数可以接收任意多个参数,但只能返回一个表达式的值,此表达式会成为Lambda函数的返回值。

Lambda函数最常用于一次性使用的匿名函数,也常用于高阶函数中作为参数传递,例如map、filter和reduce等函数。

Lambda函数的语法格式如下:

lambda arguments: expression

其中,arguments表示Lambda函数的参数列表,可以包含0个或多个参数;expression是一个表达式,表示Lambda函数的计算过程,只能返回一个值。

下面是Lambda函数的一些使用方法:

1.在map()中使用Lambda函数

map()函数可以对可迭代序列中的每个元素都执行相同的操作,生成一个新的可迭代序列。Lambda函数可以作为map()函数的 个参数,对所有元素执行相同的操作。

lst = [1, 2, 3, 4, 5]
result = map(lambda x:x**2, lst)
print(list(result))
# 输出 [1, 4, 9, 16, 25]

2.在filter()中使用Lambda函数

filter()函数可以对可迭代序列中的每个元素都进行判断,保留符合条件的元素,生成一个新的可迭代序列。Lambda函数可以作为filter()函数的 个参数,对所有元素进行判断,符合条件的元素被保留下来。

lst = [1, 2, 3, 4, 5]
result = filter(lambda x:x>2, lst)
print(list(result))
# 输出 [3, 4, 5]

3.在sorted()中使用Lambda函数

sorted()函数用于对可迭代序列进行排序,Lambda函数可以作为sorted()函数的key函数,对序列中的每个元素进行比较,返回排序的关键字。

lst = ['apple', 'banana', 'watermelon', 'orange']
result = sorted(lst, key=lambda x:len(x))
print(result)
# 输出 ['apple', 'orange', 'banana', 'watermelon']

4.在reduce()中使用Lambda函数

reduce()函数可以对可迭代序列中的所有元素进行逐个计算,最终返回一个值。Lambda函数可以作为reduce()函数的 个参数,对序列中的所有元素进行逐个计算。

from functools import reduce

lst = [1, 2, 3, 4, 5]
result = reduce(lambda x,y:x*y, lst)
print(result)
# 输出 120

总结:

Lambda函数是Python中一种强大的匿名函数,可以在一次性使用的场合下帮助简化代码,也可在高阶函数中作为参数传递,进一步简化代码。Lambda函数的语法简洁易懂,只需要掌握好使用方法,就可以更加高效地编写Python代码。