python - 按行排序坐标列表

标签 python

我正在尝试以特定方式订购一组坐标

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

{(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/

相关文章:

python - 如果我使用 urlretrieve 和 urlopen 访问相同的 url,我最终会得到不同的文件。为什么?

python - 像在 MATLAB 中一样在 python 中查看工作区变量

python - 俄语文本分类

python - 如何将 Keras .h5 导出到 tensorflow .pb?

python - Tensorflow 1.14+ 序列化子类 Keras 层?

python - PyCharm 找不到 pytz

python - Tensorflow 的介绍性 MNIST 示例导致异常

python PIL : verify extension before saving

用于 logit 刻度轴标签的 Python matplotlib ValueError

python - Python 中的 SGML 解析器