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

Python中的lambda函数: 如何定义和使用

发布时间:2023-06-19 22:43:18

Python中的lambda函数是一种匿名函数,它可以在不需要命名函数的情况下立即定义和调用。与常规函数不同,lambda函数通常在函数定义中内联使用或作为参数传递给其他函数。

Lambda函数的语法非常简单,基本形式为:

lambda argument_list: expression

其中argument_list为函数的参数列表,expression则为函数的返回值表达式。

例如,下面这个lambda函数将两个数字相加:

sum = lambda x, y: x + y

print(sum(3, 4))  # 输出7

函数的参数列表和返回值表达式之间用冒号分隔。注意,在上述示例中,我们将lambda函数分配给名为sum的变量并使用它来调用该函数。

Lambda函数也可以不带参数,例如:

greeting = lambda: "Hello, World"

print(greeting())  # 输出 "Hello, World"

在上述示例中,我们没有使用参数列表,只在返回值表达式中输出了一个字符串。这种情况下,函数调用不需要任何参数。

除了在函数定义中内联使用lambda函数外,它也可以作为参数传递给其他函数。例如,在Python的内置sorted()函数中,可以使用lambda函数来指定要按照哪种方式排序一个列表:

mylist = [(1, 2), (4, 1), (3, 5)]

sorted_list = sorted(mylist, key=lambda x: x[1])

print(sorted_list)  # 输出 [(4, 1), (1, 2), (3, 5)]

在上述示例中,我们在内置函数sorted()中使用了一个lambda函数。它的参数是一个元组x,返回值是该元组的第二个元素,在这个示例中是(1,2)、(4,1)和(3,5)的第二个元素。因此,sorted()函数首先按第二个元素排序,然后返回一个按该顺序排序的新列表。

尽管lambda函数非常方便和有用,但你需要谨慎使用它们。与常规函数不同,lambda函数通常仅用于简单上下文中,因为它们很容易变得混乱和难以理解。若是有复杂需求,我们还是建议定义一个具名函数比较好。