Python排序列表

Python排序列表,python,Python,我有如下列表: list1 = [['4.00', '7.00'], ['4.00', '4.00'], ['4.00', '1.00']] list2 = [['4.00', '7.00'], ['1.00', '7.00'], ['6.00', '7.00']] 如果x值相等,我希望根据y值按升序对元素进行排序,如果y值相等,则希望根据x值进行排序,如下所示: sorted list1 = [['4.00', '1.00'], ['4.00', '4.00'], ['4.00', '7.0

我有如下列表:

list1 = [['4.00', '7.00'], ['4.00', '4.00'], ['4.00', '1.00']]
list2 = [['4.00', '7.00'], ['1.00', '7.00'], ['6.00', '7.00']]
如果x值相等,我希望根据y值按升序对元素进行排序,如果y值相等,则希望根据x值进行排序,如下所示:

sorted list1 = [['4.00', '1.00'], ['4.00', '4.00'], ['4.00', '7.00']]
sorted list2 = [['1.00', '7.00'], ['4.00', '7.00'], ['6.00', '7.00']]

我尝试使用
sorted()
。但是,当我试图比较x的值以确定它们是否相同,然后在此基础上为
sorted()
提供键时,代码变得复杂起来。我可以用更好的方法吗?

sorted
已经做了你想要的。比较
list
s是按字典顺序进行的:从左到右比较元素,直到找到不相等的元素,此时比较的结果就是对第一个不相等的元素进行比较。例如,如果根本没有
功能,您的列表将按预期排序:

>>> list1 = [['4.00', '7.00'], ['4.00', '4.00'], ['4.00', '1.00']]
>>> list2 = [['4.00', '7.00'], ['1.00', '7.00'], ['6.00', '7.00']]
>>> sorted(list1)
[['4.00', '1.00'], ['4.00', '4.00'], ['4.00', '7.00']]
>>> sorted(list2)
[['1.00', '7.00'], ['4.00', '7.00'], ['6.00', '7.00']]

list1
案例中,它正确地比较第一个值,确定它们相同,并根据第二个值排序;在
list2
案例中,第一个值都不同,因此第二个值甚至从未被检查过。

排序的
已经完成了您想要的操作。比较
list
s是按字典顺序进行的:从左到右比较元素,直到找到不相等的元素,此时比较的结果就是对第一个不相等的元素进行比较。例如,如果根本没有
功能,您的列表将按预期排序:

>>> list1 = [['4.00', '7.00'], ['4.00', '4.00'], ['4.00', '1.00']]
>>> list2 = [['4.00', '7.00'], ['1.00', '7.00'], ['6.00', '7.00']]
>>> sorted(list1)
[['4.00', '1.00'], ['4.00', '4.00'], ['4.00', '7.00']]
>>> sorted(list2)
[['1.00', '7.00'], ['4.00', '7.00'], ['6.00', '7.00']]

list1
案例中,它正确地比较第一个值,确定它们相同,并根据第二个值排序;在
list2
案例中,第一个值都不同,因此第二个值甚至从未被检查过。

您比较它们的方式与列表通常进行比较的方式不一样吗?是的。我想知道是否有一种更简单的方法,通过指定一些条件来检查列表中的x或y在给定给sorted()函数的键中是否相等。如果您已经达到了检查
y
值的点,并且它们仍然相等,为什么返回到
x
会改变任何事情?当
x
相等时,您只测试
y
,所以返回
x
是没有意义的。@ShadowRanger。。我刚才提到了两种不同的情况。。1.如果x值相等,则对y排序。2.如果y值相等,则排序x。。。。但这就是它的工作方式。你想做什么不同?你比较它们的方式不是和列表通常比较的方式一样吗?是的。我想知道是否有一种更简单的方法,通过指定一些条件来检查列表中的x或y在给定给sorted()函数的键中是否相等。如果您已经达到了检查
y
值的点,并且它们仍然相等,为什么返回到
x
会改变任何事情?当
x
相等时,您只测试
y
,所以返回
x
是没有意义的。@ShadowRanger。。我刚才提到了两种不同的情况。。1.如果x值相等,则对y排序。2.如果y值相等,则排序x。。。。但这就是它的工作方式。你想做什么不同的事?