关于python:lambda函数如何有用?

How are lambda functions useful?

本问题已经有最佳答案,请猛点这里访问。

目前我正在学习python 3中的lambda函数。到目前为止,我所知道的lambda函数是一个匿名函数,它可以接受任意数量的参数,但只能包含一个表达式。

所以我的问题是,如果我们可以用正则表达式来做同样的事情,为什么我们需要lambda函数呢?我的意思是,引入lambda函数的实际目的是什么?


有时,您需要一个非常简单的函数一次性使用,例如作为参数传递给.sort(),告诉它如何进行排序。例如,如果要对第二个元素上的元组列表进行排序,

1
list_of_tuples.sort(key=lambda t: t[1])

1
2
3
4
def first_element(t):
    return t[1]

list_of_tuples(key=first_element)

就这些。


我很少使用随机函数,但我不喜欢将命名函数作为sort中的key来引入。我更喜欢

1
2
lst = (('s', 5), ('b', 2), ('h', 3))
srt = sorted(lst, key=lambda x: x[1])

1
2
3
4
def sort_by(x):
    return x[1]

srt = sorted(lst, key=sort_by)