我正在阅读Python的教程介绍,我一直在理解一段代码。这是来自教程的第4.7.5节。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')]
,它定义了与不同元组的列表对。我明白了。 第二行是我完全抛弃的地方,我已经做了相当多的修改,试图了解发生了什么。
我发现sort()正在向变量对应用一个内置函数,并且大概是按照我给它的指令对它进行排序。
sort()函数需要一个键,并且键必须使用函数定义,因此使用lambda。我认为所有这些都是正确的,但我可能会离开这里。
Lambda在冒号左侧定义了一个新参数“pair”,右侧是定义lambda函数返回值的计算。
这就是我被扔掉的地方。 “pair [1]”是做什么的?它对结肠左侧“对”的影响是什么?
它返回什么值?除了像这样编码之外,我似乎无法让它返回任何价值。
我猜测它以某种方式指向特定的元组,并基于重新定位对它进行排序,但我不确定其背后的逻辑。
任何人都可以解释这对我吗?谢谢。
用'lambda'你可以引用你需要排序的值。 –
如果你第一次做'key = lambda pair:pair [1]',然后调用'key(pairs [0])',并将它与'key(pairs [1])'进行比较会有帮助吗?如果我告诉你,最终结果按字母顺序排列在每个元组的第二个元素上? –