从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接受一对(在这种情况下为元组),并在元组的第二个元素(或第二个值;我不确定术语)上进行排序。
由于第二个元素是字符串,所以排序将“按字母顺序排列”的值显示在顶部。因此,输出的元组在集合的顶部具有按字母顺序排列的第二个元素。
我的理解正确吗?
答案 0 :(得分:1)
是的。
将对要排序的列表中的每个值调用key
函数,并且排序顺序基于该调用的结果。字符串自然按字典顺序(按您的字母顺序)排序,list.sort
默认按升序排序,因此您将获得所有元组的列表,按其第二个元素的升序顺序。
请注意,这通常是通过使用operator.itemgetter
便捷功能来完成的。
from operator import itemgetter
my_list.sort(key=itemgetter(1))
答案 1 :(得分:0)
是,理智确认。它按每对第二个元素排序。