在 Python 中,如何使用 lambda 函数?
Lambda 函数是一种匿名函数,也称为“匿名函数”或“一次性函数”,旨在让您在某些情况下定义一个函数,而无需一遍又一遍地编写它。本文将介绍如何在 Python 中使用 lambda 函数。
Python 中的 lambda 函数的语法:
lambda arguments: expression
其中,arguments 是参数列表,可以有零个或多个。冒号后面的 expression 是执行的代码块,它可以是单个表达式或语句块。在 lambda 函数内部,只能使用一行表达式。
以下是一个示例:
add = lambda x, y: x + y print(add(5, 3)) # Output: 8
在此示例中,我们定义了一个带有两个参数的 lambda 函数,该函数返回参数的和。我们通过调用该 lambda 函数并传入值 5 和 3 来计算 5 + 3 的和。
lambda 函数通常与内置函数和列表/字典/集合等集合类型一起使用。让我们进一步了解如何使用 lambda 函数。
使用 lambda 函数对列表排序
lambda 函数可以与内置的 sorted() 函数一起使用,以对列表进行排序。以下是一个示例:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted_students = sorted(students, key=lambda student: student[2])
print(sorted_students) # Output: [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
在这个示例中,我们使用了一个包含元组类型数据的名为 students 的列表。我们使用 lambda 函数来按年龄对学生进行排序。
使用 lambda 函数进行过滤
lambda 函数可以与内置的 filter() 函数一起使用,以过滤列表中的项目。例如,以下代码使用 lambda 函数过滤出大于等于 5 的元素:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] filtered_numbers = list(filter(lambda x: x >= 5, numbers)) print(filtered_numbers) # Output: [5, 6, 7, 8, 9, 10]
在这个示例中,我们使用 lambda 函数和内置的 filter() 函数来过滤列表中大于等于 5 的元素。
使用 lambda 函数进行映射
lambda 函数也可以与内置的 map() 函数一起使用,以对列表中的项目执行某些操作。例如,以下代码使用 lambda 函数将列表中的每个元素增加 3:
numbers = [1, 2, 3, 4, 5] mapped_numbers = list(map(lambda x: x + 3, numbers)) print(mapped_numbers) # Output: [4, 5, 6, 7, 8]
在这个示例中,我们使用 lambda 函数和内置的 map() 函数来将列表中的每个元素增加 3。
使用 lambda 函数进行归约
lambda 函数也可以与内置的 reduce() 函数一起使用,对列表进行归约操作。例如,以下代码使用 lambda 函数对列表中的元素求和:
from functools import reduce numbers = [1, 2, 3, 4, 5] sum_of_numbers = reduce(lambda x, y: x + y, numbers) print(sum_of_numbers) # Output: 15
在这个示例中,我们使用 lambda 函数和内置的 reduce() 函数来计算列表的总和。
总结
lambda 函数在 Python 中是非常常见的,最常见的是将其用作参数或返回值,在适当的场合中 lambda 函数可以令代码简洁,并且使代码读起来更加自然。前面介绍了 lambda 函数的基本使用方法及其在 Python 中的常用场景。这项语言特性对于初学者可能会有些陌生,但是一旦熟练掌握,它可以在某些情况下帮助您创建更具有表现力和动态的代码。
