Python中的lambda函数基础知识
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函数是非常有用的工具。
