Python中lambda结合sort方法使用的理解正确性验证
关于Python中lambda与sort结合使用的理解确认
你的理解完全正确!我们来拆解一下这个示例的细节,帮你再巩固一下逻辑:
首先看这段官方示例代码:
>>> 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')]
sort()方法的key参数需要一个函数,这个函数会为列表里的每个元素生成一个「排序依据键」,排序操作就按照这个键的大小来重新排列元素。- 这里的
lambda pair: pair[1]是一个匿名函数,它接收每个元组pair作为输入,直接返回元组的第二个元素(也就是字符串值)作为排序键。 - 因为字符串的排序遵循Unicode码点顺序(对于英文字母来说就是常规的字母表顺序),所以
'four'(以f开头)排在最前,接着是'one'(o开头)、'three'(t开头),最后是'two'(同样t开头,但后续字母排序靠后),最终得到你看到的结果。
简单来说,你对lambda的作用、排序依据以及最终结果的逻辑判断都准确无误~
内容的提问来源于stack exchange,提问作者Steve Boniface




