在 Python 中,lambda
表达式是一个小型匿名函数,通常用于实现简单、单行的函数。lambda
函数可以接受任意数量的参数,但只能有一个表达式。
基本语法:
lambda arguments: expression
这里,arguments
是传递给 lambda 的参数,expression
是关于这些参数的表达式,它的计算结果就是 lambda 函数的返回值。
使用场景:
-
快速定义小函数:由于
lambda
表达式简洁,它经常被用在需要简单函数的地方,而不必正式定义一个函数。 -
作为高阶函数的参数:在 Python 中,像
map()
、filter()
和sorted()
这样的函数接受一个函数作为参数。lambda
表达式通常在这类用法中被用来提供一个小的、未命名的函数。
示例:
1.将两个数相加:
add = lambda x, y: x + y
print(add(5, 3)) # 输出: 8
2.排序列表:使用 lambda
表达式作为 sort()
方法的 key
参数,这个 lambda
函数取每个元组的第二个元素(即 x[1]
)作为排序的依据。
list1 = [('a', 2), ('c', 1), ('b', 3)]
list1.sort(key=lambda x: x[1]) # 按照元组的第二个数据进行排序
print(list1) # 输出: [('c', 1), ('a', 2), ('b', 3)]
3.筛选列表:filter()
函数接收两个参数:一个函数和一个可迭代对象。它会创建一个迭代器,包含所有使得函数返回 True 的原可迭代对象的元素。
nums = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens) # 输出: [2, 4, 6]
4.生成平方列表:
# 定义一个整数列表
numbers = [1, 2, 3, 4, 5]
# 使用 map 函数和 lambda 表达式来计算每个数的平方
squared_numbers = map(lambda x: x ** 2, numbers)
# 将结果转换为列表并打印
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
lambda
表达式由于其限制(单一表达式,不能包含命令等),在复杂逻辑需要多个表达式或语句的场合,仍需定义标准的函数。
以上内容总结自网络,如有帮助欢迎转发,我们下次再见!