当谈到一个函数只被使用一次时,使用lambda函数可以让一些编码任务更加便利。
1. Python Lambda函数的基础语法
lambda 函数定义形式如下:
lambda argument_list: expression
这里,argument_list
是参数列表,用逗号分隔。expression
是关于这些参数的运算式。可以把lambda函数分配给一个变量,并像一个普通函数那样进行调用,如下所示:
sum = lambda x, y: x + y
print(sum(3, 4)) # 7
这里,我们使用lambda x, y: x + y
定义了一个简单的lambda函数并赋值给sum
变量。sum(3, 4)
的结果为7。
2.使用Python Lambda函数的好处
- 不需要定义函数名字,使用一次后即丢弃,因此节省内存。
- 代码更加简洁明了,减少不必要的命名。
3. 两个示例代码
3.1. 对一个列表进行排序
这里我们使用 sorted()
函数对一个列表进行排序。它的用法如下:
new_list = sorted(old_list, key=lambda x: x[1])
它的工作原理是:key
参数用于定义在old_list
中每个元素上的操作。 key=lambda x: x[1]
表示使用列表中每个元素的第二个值进行排序。此函数返回一个新的已排序列表。
下面是示例代码:
old_list = [(1, 2), (2, 0), (3, 5), (4, 1)]
new_list = sorted(old_list, key=lambda x: x[1])
print(new_list) # [(2, 0), (4, 1), (1, 2), (3, 5)]
3.2. 设定一个条件
我们可以使用 filter()
函数来使用 lambda
函数选出一些元素。下面这个例子会过滤那些质数:
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
filtered_primes = list(filter(lambda x: x > 10, primes))
print(filtered_primes) # [11, 13, 17, 19, 23, 29]
这里我们利用lambda x: x > 10
条件,选出了所有大于10的质数,并将其赋值给filtered_primes
变量。