Python —使用lambda排序(合理性检查)

时间:2019-02-09 03:25:51

标签: python

从Python文档中了解如何通过sort方法使用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接受一对(在这种情况下为元组),并在元组的第二个元素(或第二个值;我不确定术语)上进行排序。

由于第二个元素是字符串,所以排序将“按字母顺序排列”的值显示在顶部。因此,输出的元组在集合的顶部具有按字母顺序排列的第二个元素。

我的理解正确吗?

2 个答案:

答案 0 :(得分:1)

是的。

将对要排序的列表中的每个值调用key函数,并且排序顺序基于该调用的结果。字符串自然按字典顺序(按您的字母顺序)排序,list.sort默认按升序排序,因此您将获得所有元组的列表,按其第二个元素的升序顺序。

请注意,这通常是通过使用operator.itemgetter便捷功能来完成的。

from operator import itemgetter

my_list.sort(key=itemgetter(1))

答案 1 :(得分:0)

是,理智确认。它按每对第二个元素排序。