在Python中,我们使用lambda关键字创造匿名函数。使用匿名函数时,我们不再使用def语句这样标准的形式定义一个函数,而是使用一种函数表达式的方式,一般只是实现一些简单的功能。

lambda

lambda函数在调用时,绕过函数的栈分配。其语法是:

1
lambda [arg1[, arg2, ... argN]]: expression

例子:

1
2
3
4
add = lambda x, y: x + y

print(add(3, 5))
# Output: 8

lambda表达式还可以可以在一些特殊情况下使用,看下面的几个例子:

列表排序

1
2
3
4
5
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1])

print(a)
# Output: [(13, -3), (4, 1), (1, 2), (9, 10)]

列表并行排序

1
2
3
data = zip(list1, list2)
data = sorted(data)
list1, list2 = map(lambda t: list(t), zip(*data))