如何对xy坐标列表进行排序

geg*_*ese 7 python sorting

我需要对[x,y]坐标列表进行排序,如下所示:

list = [[1,2],[0,2],[2,1],[1,1],[2,2],[2,0],[0,1],[1,0],[0,0]]
Run Code Online (Sandbox Code Playgroud)

我在排序后寻找的模式是:

[x,y]坐标应首先排序y,然后按x.新列表应如下所示:

list = [[0,0],[1,0],[2,0],[0,1],[1,1],[2,1],[0,2],[1,2],[2,2]]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何做到这一点,并希望得到一些帮助.

AKS*_*AKS 19

使用sorted密钥:

>>> my_list = [[1,2],[0,2],[2,1],[1,1],[2,2],[2,0],[0,1],[1,0],[0,0]]
>>> sorted(my_list , key=lambda k: [k[1], k[0]])
[[0, 0], [1, 0], [2, 0], [0, 1], [1, 1], [2, 1], [0, 2], [1, 2], [2, 2]]
Run Code Online (Sandbox Code Playgroud)

它将首先对y值进行排序,如果相等,那么它将对x值进行排序.

我还建议不要list用作变量,因为它是一个内置的数据结构.

  • my_updated_list = Sorted(my_list , key=lambda k: [k[1], k[0]]) ,您必须将其分配给新变量。 (2认同)