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

如何在Python中使用lambda匿名函数?

发布时间:2023-06-19 13:05:03

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函数的好处是,它可以使代码更加简洁。在上述示例中,我们可以将代码压缩成一行而不会让代码变得更加复杂。