从最低到最高排序坐标

时间:2016-05-12 17:22:56

标签: python sorting

我有以下需要排序的坐标数据。

array =
[[ 1.72  2.4 ]
[ 2.6   4.  ]
[ 0.6   2.4 ]
[ 3.8   0.8 ]
[ 1.6   0.  ]
[ 1.64  0.8 ]
[ 3.4   2.4 ]
[ 0.92  0.8 ]
[ 4.    0.  ]
[ 2.2   4.  ]
[ 3.2   3.2 ]
[ 3.6   1.6 ]
[ 1.4   4.  ]
[ 2.4   0.  ]
[ 0.4   1.6 ]
[ 1.8   4.  ]
[ 0.8   0.  ]
[ 3.2   0.  ]
[ 2.32  1.6 ]
[ 2.36  0.8 ]
[ 2.72  3.2 ]
[ 0.    0.  ]
[ 1.16  2.4 ]
[ 0.8   3.2 ]
[ 1.68  1.6 ]
[ 1.    4.  ]
[ 2.84  2.4 ]
[ 1.04  1.6 ]
[ 2.24  3.2 ]
[ 2.28  2.4 ]
[ 0.2   0.8 ]
[ 1.76  3.2 ]
[ 3.08  0.8 ]
[ 3.    4.  ]
[ 2.96  1.6 ]
[ 1.28  3.2 ]]

列表的每个值中的第一个元素对应于x值,下一个元素对应于y值。应首先对y值进行排序,从最低到最高。排序y值后,x值应从最低到最高排序。我写了以下函数来对它进行排序:

def sort_mesh(array):
    return sorted(array,key=lambda l: [l[1], l[0]])

问题在于,它起初有效但是有一个错误

[array([ 0.,  0.]), array([ 0.8,  0. ]), array([ 1.6,  0. ]), array([ 2.4,  0. ]), array([ 3.2,  0. ]), array([ 4.,  0.]), array([ 0.2,  0.8]), array([ 0.92,  0.8 ]), array([ 1.64,  0.8 ]), array([ 2.36,  0.8 ]), array([ 3.08,  0.8 ]), array([ 3.8,  0.8]), array([ 0.4,  1.6]), array([ 1.04,  1.6 ]), array([ 1.68,  1.6 ]), array([ 2.32,  1.6 ]), array([ 2.96,  1.6 ]), array([ 3.6,  1.6]), array([ 0.6,  2.4]),!!!!!!!!!!!!!!!!! array([ 3.4,  2.4]), array([ 1.16,  2.4 ]), array([ 1.72,  2.4 ]), array([ 2.28,  2.4 ]), array([ 2.84,  2.4 ]), array([ 0.8,  3.2]), array([ 1.28,  3.2 ]), array([ 1.76,  3.2 ]), array([ 2.24,  3.2 ]), array([ 2.72,  3.2 ]), array([ 3.2,  3.2]), array([ 1.,  4.]), array([ 1.4,  4. ]), array([ 1.8,  4. ]), array([ 2.2,  4. ]), array([ 2.6,  4. ]), array([ 3.,  4.])]

我添加了一些"!"表达式标记在返回的数组中,以便您可以看到在哪里找到错误。

我希望有人可以帮助我。

最好的问候

0 个答案:

没有答案