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

Python—如何对Python元组列表中的单个元素进行排序,python,list,sorting,tuples,Python,List,Sorting,Tuples,我很抱歉,如果这是一个重复的 取决于两个因素 我有一个未排序的元组列表 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)] 元组是不可变的,因此不能简单地对其内容进

我很抱歉,如果这是一个重复的

取决于两个因素

我有一个未排序的元组列表

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)]

元组是不可变的,因此不能简单地对其内容进行排序。您必须创建包含旧元组的排序项的新元组。这里有一个简单的方法,可以通过一个两项元组列表来实现这一点

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)]

sorted_list=[(u,v)如果你的输出似乎是你所说的你想要的,所以不清楚你在问什么。顺便说一句,这个特殊的键函数是多余的:这就是两个元素元组在没有键函数arg的情况下的排序方式。对不起,我把它改成了我想要的。我希望数字从头到尾都是有序的。谢谢!我想你把这些输出弄混了。你说不是“我想让数字从头到尾排序”,但在问题中,你说你的结果是
[(35,40)、(45,50)]
,“这不是我想要的”。请记住,元组是不可变的,因此你不能简单地对其内容排序。你必须创建包含旧元组排序项的新元组。