Lambda 函数解释
在 Python 中,lambda
函数是一种创建匿名函数的简便方法。这种函数没有名字,并且通常用于需要一个短小的函数来传递到其他函数中的场景。
语法
lambda 参数: 表达式
- 参数: 这是传递给
lambda
函数的输入参数,可以有多个,使用逗号分隔。 - 表达式: 这是
lambda
函数的返回值。注意,lambda
函数只能包含一个表达式。
示例解释
先来看这个的代码:
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
详细解释
-
定义列表:
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
这里定义了一个列表,列表中的每个元素是一个元组,每个元组包含一个整数和一个字符串。
-
使用
sort
方法排序:pairs.sort(key=lambda pair: pair[1])
sort
方法用于对列表进行就地排序。key=lambda pair: pair[1]
指定排序的依据。lambda
函数接受一个参数pair
,返回pair[1]
,即元组中的第二个元素。
执行过程
- 初始列表是
[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
。 lambda
函数被应用于每个元组,提取第二个元素进行排序。- 按
'four'
,'one'
,'three'
,'two'
的字母顺序排序。 - 最终结果是
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
。
其他例子
示例1: 简单的 lambda
函数
# 定义一个 lambda 函数,用于计算两个数的和
add = lambda x, y: x + y
# 使用 lambda 函数
result = add(3, 5)
print(result) # 输出: 8
- 这里
lambda x, y: x + y
创建了一个匿名函数,用于返回两个数的和。 - 我们将这个函数赋值给变量
add
,然后可以像普通函数一样调用它。
示例2: 在 sorted
函数中使用 lambda
# 定义一个包含字典的列表
students = [
{'name': 'Alice', 'score': 85},
{'name': 'Bob', 'score': 92},
{'name': 'Charlie', 'score': 78}
]
# 按照成绩排序
sorted_students = sorted(students, key=lambda student: student['score'])
print(sorted_students)
- 这里
lambda student: student['score']
创建了一个匿名函数,用于提取字典中的score
键值。 sorted
函数使用这个lambda
函数作为排序依据,对学生列表按成绩进行排序。
总结
lambda
函数用于创建简短的匿名函数,通常在需要传递简单函数作为参数的场景下使用。它可以提高代码的简洁性和可读性。通过上面的例子,可以更好地理解如何使用 lambda
函数以及它的实际应用场景。