我有一个 xy 坐标列表,我需要根据 x 坐标进行排序,然后是 y 坐标,当 x 相同并消除相同坐标的重复项时。例如,如果列表是:

[[450.0, 486.6], [500.0, 400.0], [450.0, 313.3], [350.0, 313.3], [300.0, 400.0],
 [349.9, 486.6], [450.0, 313.3]]

我需要将其重新排列为:
[[300.0, 400.0], [349.9, 486.6], [350.0, 313.3], [450.0, 313.3], [450.0, 486.6],
 [500.0, 400.0]]

(删除了 [450.0, 313.3] 的一个副本)

最佳答案

无论如何,这是列表列表的正常排序顺序。用 dict 去重复它。

>>> L = [[450.0, 486.6], [500.0, 400.0], [450.0, 313.3], [350.0, 313.3], [300.0, 400.0], [349.9, 486.6], [450.0, 313.3]]
>>> sorted({tuple(x): x for x in L}.values())
[[300.0, 400.0],
 [349.9, 486.6],
 [350.0, 313.3],
 [450.0, 313.3],
 [450.0, 486.6],
 [500.0, 400.0]]

10-07 16:19