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

如何创建Python匿名函数和Lambda函数

发布时间:2023-09-13 08:58:53

Python中的匿名函数也叫做lambda函数,它是一种简化函数定义的方式。与普通的函数定义不同,匿名函数没有函数名和return语句,并且只能包含单个表达式。

要创建一个匿名函数,可以使用lambda关键字,其语法格式如下:

lambda arguments: expression

其中,arguments是函数的参数,可以是多个参数,用逗号隔开。expression是函数的计算逻辑。

下面是一个简单的示例,创建一个加法的匿名函数:

add = lambda x, y: x + y

print(add(2, 3))  # 输出5

在这个示例中,lambda函数有两个参数x和y,计算逻辑是将x和y相加。可以直接调用add函数来计算结果。

Lambda函数常用于在其他函数中传递一个简洁的函数逻辑。例如,在排序函数sorted()中,可以使用lambda函数指定排序的依据。下面是一个示例,根据年龄对列表中的人进行排序:

people = [

    {'name': 'Alice', 'age': 25},

    {'name': 'Bob', 'age': 18},

    {'name': 'Charlie', 'age': 30}

]

sorted_people = sorted(people, key=lambda x: x['age'])

print(sorted_people)

输出结果如下:

[{'name': 'Bob', 'age': 18},

 {'name': 'Alice', 'age': 25},

 {'name': 'Charlie', 'age': 30}]

在这个示例中,lambda函数的参数是列表中的每个元素,计算逻辑是返回元素的age属性。根据年龄对人的列表进行排序。

Lambda函数也可以嵌套使用。例如,可以在一个lambda函数内部定义一个更小的匿名函数。下面是一个示例,使用一个lambda函数和一个内嵌的lambda函数计算两个数的乘积:

multiply = lambda x: (lambda y: x * y)

print(multiply(2)(3))  # 输出6

在这个示例中,外层的lambda函数接受一个参数x,并返回一个内嵌的lambda函数。内嵌的lambda函数接受一个参数y,并计算x和y的乘积。通过调用multiply函数两次,先传入2,再传入3,就可以得到乘积6。

需要注意的是,lambda函数的表达式部分只能包含简单的计算逻辑,不能包含复杂的控制流语句和多行代码。如果需要更复杂的功能,建议使用普通的函数定义。

总结一下,创建Python匿名函数和lambda函数的关键是使用lambda关键字,指定参数和计算逻辑。lambda函数常用于简洁地指定函数逻辑,例如在排序函数中指定排序的依据。并且,lambda函数还可以嵌套使用,创建更复杂的函数逻辑。