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

Python中的lambda函数基础知识

发布时间:2023-06-22 12:53:49

lambda函数是Python中一种匿名函数,可以用来简化语法,在许多情况下非常有用。lambda函数可以取代一些可以用def定义的函数,但在其它情况下则无法使用。

lambda函数的语法

lambda函数通过使用关键词lambda来定义函数,其语法如下:

lambda arguments: expression

其中,arguments表示函数的参数列表,expression为函数的返回值。lambda函数和普通函数不同的是,在lambda函数中,参数和表达式之间不存在函数名,只是一个匿名函数。

下面是一个简单的示例,展示了如何使用lambda函数:

sum = lambda arg1, arg2: arg1 + arg2

print("相加后的值为 : ", sum(10, 20))

print("相加后的值为 : ", sum(20, 20))

这段代码中,用lambda定义了一个函数sum,该函数有两个形式参数arg1和arg2,表达式为arg1+arg2。代码中两次调用sum函数分别传入了不同的参数,打印出了相应的结果。

lambda函数的常见用法

lambda函数的常见用法有:

1. 函数返回值

lambda函数可以作为普通函数的返回值,多用于封装业务逻辑较为简单的回调函数。

def myfunc(n):

    return lambda a: a * n

mydoubler = myfunc(2)

mytripler = myfunc(3)

print(mydoubler(11))

print(mytripler(11))

这段代码中,函数myfunc返回一个lambda函数,该函数实现了参数a与常量n的乘积运算。通过mydoubler和mytripler变量分别传入2和3,计算出11的2倍和3倍,结果分别为22和33。

2. 对列表的排序

lambda函数可以用于对列表排序,其中key参数表示排序规则。

以下代码展示了如何使用lambda函数对列表排序:

a = [(1, 2), (4, 1), (9, 10), (13, -3)]

a.sort(key=lambda x: x[1])

print(a)

这段代码中,对元组列表a进行排序,依据元组的第2个值进行排序,排序结果为:

[(13, -3), (4, 1), (1, 2), (9, 10)]

3. map函数的应用

在Python中,map()函数是对序列中的每个元素进行函数操作并返回一个新的列表,可以用lambda函数快捷地完成操作。

下面是一个例子,通过map()函数使用lambda函数对列表中每个元素进行平方运算:

list1 = [1, 2, 3, 4, 5]

result = map(lambda x: x**2, list1)

print(list(result))

这段代码中,用lambda函数对列表中每个元素进行平方运算,输出的结果为:

[1, 4, 9, 16, 25]

总结

Lambda函数是Python语言中的一种简便方式来定义匿名函数。Lambda函数可以与map()、reduce()等内置函数配合使用,能够简化代码,提高开发效率。在许多情况下,Lambda函数是非常有用的工具。