Python - 如何对Python元组列表中的各个元素进行排序

时间:2017-11-16 17:14:46

标签: python list sorting tuples

我很抱歉这是否与此重复。

Sort a list of tuples depending on two elements 根据对二元素

我所拥有的是未排序的元组列表

unsorted_list  = [(50,45), (35,40)]
sorted_list = [(35,40), (50,45)]

我想最终得到以下排序列表。我尝试了以下方法:

sorted(unsorted, key=lambda element: (element[0], element[1]))

我的结果如下,这不是我想要的。

[(35, 40), (45,50)]

1 个答案:

答案 0 :(得分:0)

元组是不可变的,因此您无法简单地对其内容进行排序。您必须创建包含旧元组的已排序项的新元组。这是一个使用两项元组列表的简单方法。

unsorted_list = [(50,45), (35,40)]
sorted_list = [(min(t), max(t)) for t in sorted(unsorted_list)]
print(sorted_list)

<强>输出

[(35, 40), (45, 50)]

另一种选择是

sorted_list = [(u, v) if u<=v else (v, u) for u,v in sorted(unsorted_list)]