gpt4 book ai didi

python - 按行排序坐标列表

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:54 24 4
gpt4 key购买 nike

我正在尝试以特定方式对一组坐标进行排序

如果我有一组尚未排序的坐标表示某些网格中的不同单元格,

{(2, 2), (3, 1), (1, 2), (3, 2), (1, 3)}

我的目标是从底行开始从左到右对其进行排序。

schematic of coordinates

0 1 2 3 4
0 X X X X X
1 X X O O X
2 X X O X X
3 X O O X X


{(3, 1), (3, 2), (2, 2), (1, 2), (1, 3)} # desired output

我想出了下面的代码,但是在行号相同但列号不同的情况下这会失败

data = {(1, 2), (1, 4), (2, 2), (0, 3), (0, 4)}

data_1 = sorted(data, key=lambda x: x[0], reverse=True)

data_2 = sorted(data_1, key=lambda x: x[1])

>>> print(data_2)
[(2, 2), (1, 2), (0, 3), (1, 4), (0, 4)]

# desired output
[(2, 2), (1, 2), (1, 4), (0, 3), (0, 4)]

我可以做哪些改进?

最佳答案

data = {(1, 2), (1, 4), (2, 2), (0, 3), (0, 4)}
sorted(data, key=lambda x:(-x[0],x[1]))
#[(2, 2), (1, 2), (1, 4), (0, 3), (0, 4)]

关于python - 按行排序坐标列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com