我有一个 x
、 y
坐标列表,我需要根据 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]]