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

《Python函数:lambda函数和匿名函数详解》

发布时间:2023-06-11 11:17:30

Python中lambda函数和匿名函数是一种简化代码和提高代码可读性的方法。本文将详细讲解Python中lambda函数和匿名函数的定义、语法、用法及示例。

一、lambda函数的定义

lambda函数,也称为匿名函数,是指没有名称的一种函数。它在Python中使用关键字lambda定义,可以简化代码和提高代码可读性。lambda函数通常用于函数式编程中。

二、lambda函数的语法

lambda函数的语法如下:

lambda 参数列表: 表达式

其中,参数列表表示lambda函数的参数列表,可以为空;表达式为需要执行的语句或表达式。

三、lambda函数的用法

1.用法一:直接调用lambda函数

lambda函数可以直接调用,传入的参数与普通函数一样。

示例代码如下:

f = lambda x, y: x + y
print(f(1, 2))  # 输出:3

上面的代码中,定义了一个lambda函数,接收两个参数x和y,然后返回它们的和。在第二行代码中,我们定义了一个变量f来保存这个lambda函数,并直接调用它,并传入两个参数1和2。

2.用法二:作为其他函数的参数

lambda函数可以作为其他函数的参数,例如sorted()函数和map()函数等。

sorted()函数会以lambda函数返回的值来对列表进行排序。

示例代码如下:

nums = [3, 5, 1, 4, 2]
nums_sorted = sorted(nums, key=lambda x: x)
print(nums_sorted)  # 输出:[1, 2, 3, 4, 5]

上面的代码中,我们使用sorted()函数对nums列表进行排序。在sorted()函数中,我们使用lambda函数来设置排序规则,将x作为参数,返回x本身。

map()函数可以将一个函数应用到一个序列中的所有元素上。

示例代码如下:

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

上面的代码中,我们使用map()函数将lambda函数应用到nums序列中的所有元素上,将每个元素的平方值存入到另一个列表中。

四、匿名函数的示例

示例一:使用lambda函数计算两数之和。

f = lambda x, y: x + y
print(f(1, 2))  # 输出:3

示例二:使用lambda函数计算圆的面积。

circle_area = lambda r: 3.1415926*r**2
print(circle_area(1))  # 输出:3.1415926

示例三:使用lambda函数进行排序。

students = [('Tom', 18), ('Jerry', 20), ('Mike', 22)]
students_sorted = sorted(students, key=lambda x: x[1])
print(students_sorted)  # 输出:[('Tom', 18), ('Jerry', 20), ('Mike', 22)]

示例四:使用lambda函数过滤列表中的奇数。

nums = [1, 2, 3, 4, 5]
nums_even = list(filter(lambda x: x%2==0, nums))
print(nums_even)  # 输出:[2, 4]

五、总结

本文讲解了Python中lambda函数和匿名函数的定义、语法、用法及示例。lambda函数可以简化代码和提高代码可读性,通常用于函数式编程中。匿名函数也可以做多项式函数用,在数学运算上也有很好的应用。