Lambda表达式:快速创建Python匿名函数
Lambda表达式是Python中一种快速创建匿名函数的方法。匿名函数是一种没有名称的函数,通常用于简化代码。与常规函数不同的是,匿名函数只能被调用一次,并且没有函数名称和函数文档。Lambda表达式可以在需要时创建简单的、一次性的函数。
Lambda表达式的基本语法如下:
lambda argument_list: expression
其中,argument_list是逗号分隔的参数列表,expression是函数体。Lambda表达式只有一行代码,因此不需要使用return语句。
下面是一个简单的例子:
(lambda x: x*2)(3)
这个表达式代表一个匿名函数,它的参数为x,函数体为x*2,然后将3传递给该函数。
Lambda表达式的一个常见用途是作为函数的参数。例如,可以使用lambda表达式定义一个键函数,根据字典中某个键的值进行排序。
例如,对字典列表进行排序,按字典的value值从大到小排序。
d = {'a': 10, 'b': 20, 'c': 5, 'd': 40}
sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(sorted_d)
输出结果:
[('d', 40), ('b', 20), ('a', 10), ('c', 5)]
在这个例子中,使用lambda表达式,针对每个字典项使用x[1]作为排序关键字。
Lambda表达式的另一个用途是作为过滤器。过滤器是一种在集合中选择特定项的方式,使得只返回满足特定条件的项。
例如,可以使用lambda表达式过滤一个列表,只返回长度大于3的字符串。
strings = ['a', 'as', 'bat', 'car', 'dove', 'python']
filtered_strings = filter(lambda x: len(x) > 3, strings)
print(list(filtered_strings))
输出结果:
['dove', 'python']
在这个例子中,使用lambda表达式作为过滤函数,比如只选择长度大于3的字符串。
Lambda表达式在 Python 中被广泛使用。 它们特别适合于简单且具有单一目的的功能,这使得他们成为编写高效 Python 代码的重要组成部分。
