这个 lambda 函数示例如何工作?

How does this example of a lambda function work?

我正在学习 Python 中的 lambda,但我不明白这个例子中发生了什么。

谁能用通俗易懂的英语解释一下这是怎么回事?这个例子说是“传递一个小函数作为参数”,但我不明白那是什么意思。

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

您正在使用 lambda expression 或匿名函数),sort 您的元组列表基于某个 key . pair[1] 表示您正在以每个元组(the strings)中索引位置为 1 的元素的 key 进行排序。使用字符串排序按字母顺序排序,这会导致您看到的输出。

如果您使用每个元组中的第一个元素作为排序 key 例如 (pair[0]),您将按递增的数字顺序排序:

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[0])
>>> pairs
[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]