我很抱歉这是否与此重复。
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)]
答案 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)]