如何在Python中使用lambda匿名函数?
Lambda函数也被称为匿名函数,它是一种一次性函数,没有函数名。在Python中,使用lambda关键字来定义_lambda函数,它的语法如下:
lambda arguments: expression
其中,arguments是参数列表,可以包含零个或多个参数,而expression则是用来计算的表达式。返回值就是lambda函数的结果。
以下是使用lambda函数的常见场景。
### 1.筛选列表中所有偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_lst = list(filter(lambda x: x % 2 == 0, lst)) print(even_lst)
输出结果:
[2, 4, 6, 8, 10]
在上面的例子中,我们使用了内置函数filter,它将列表中的每个元素传递给lambda函数,并根据lambda函数返回结果来筛选列表。在这里,我们使用lambda函数判断每个元素是否为偶数。
### 2.使用lambda函数进行排序
lst = [(2, 3), (4, 1), (1, 2), (5, 6)] sorted_lst = sorted(lst, key=lambda x: x[0]) print(sorted_lst)
输出结果:
[(1, 2), (2, 3), (4, 1), (5, 6)]
在该例中,我们使用sorted函数对元组列表进行排序。对于每个元组,我们传递它的 个元素给lambda函数作为排序依据。
### 3.计算平方和
lst = [1, 2, 3, 4, 5] square_sum = sum(list(map(lambda x: x*x, lst))) print(square_sum)
输出结果:
55
在这个例子中,我们使用了内置函数map,它将lambda函数应用于列表中的每个元素,并返回结果列表。在这里,我们将每个元素平方,然后使用sum函数对结果列表进行求和。
### 4.将字典列表按照值排序
lst = [{'name': 'John', 'score': 90}, {'name': 'Sam', 'score': 80}, {'name': 'Lisa', 'score': 95}]
sorted_lst = sorted(lst, key=lambda x: x['score'], reverse=True)
print(sorted_lst)
输出结果:
[{'name': 'Lisa', 'score': 95}, {'name': 'John', 'score': 90}, {'name': 'Sam', 'score': 80}]
在上述示例中,我们使用了sorted函数对字典列表进行排序,排序依据是字典中的score键值。我们可以使用lambda函数将score键值传递给sorted函数。
### 5.计算列表元素和
lst = [1, 2, 3, 4, 5] sum_lst = lambda x: sum(x) print(sum_lst(lst))
输出结果:
15
在这个例子中,我们定义了一个名为sum_lst的lambda函数,它接受一个参数x并返回x的元素和。
### 6.使用lambda函数进行运算
x = lambda a, b: a * b print(x(5, 6))
输出结果:
30
在该例中,我们定义了一个名为x的lambda函数,它接受两个参数a和b,并返回它们的乘积。
### 7.使用lambda函数进行条件判断
is_odd = lambda x: True if x % 2 else False print(is_odd(7)) print(is_odd(6))
输出结果:
True False
在该例中,我们对每个元素使用lambda函数进行条件判断,它被称为三目运算符,返回True或False,如果x % 2为0,那么返回False,否则返回True。
在Python中,使用lambda函数的好处是,它可以使代码更加简洁。在上述示例中,我们可以将代码压缩成一行而不会让代码变得更加复杂。
