我有以下需要排序的坐标数据。
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.])]
我添加了一些"!"表达式标记在返回的数组中,以便您可以看到在哪里找到错误。
我希望有人可以帮助我。
最好的问候