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

9
我正在学习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')]

1
请查看https://dev59.com/OGox5IYBdhLWcg3wyXVx#8966627。 - basher
这段代码会按照索引1(也就是元组中的第二个元素)进行排序,实现你所要求的功能。 - Julien Spronck
1个回答

17
您正在使用 lambda表达式(或匿名函数)对元组列表进行排序,基于某个键 keypair [1] 表示您正在按每个元组的索引位置为 1 的元素(即字符串)的值进行排序。使用字符串进行排序会按字母顺序排序,从而产生您看到的输出结果。
例如,如果您使用每个元组的第一个元素作为排序 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')]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接