0
0 комментариев

Доброго времени суток
Есть такой массив:

   [[-0.08389921  0.19594724 -0.94168127 -0.26038826]
    [-0.08345754  0.19559757 -0.94191563 -0.25994498]
    [ 0.19331953 -0.11434945 -0.93220872 -0.28379342]
    ...,
    [ 0.00371751  0.20588334 -0.9404704  -0.27039546]
    [ 0.23030412 -0.32481459 -0.87476689 -0.276113  ]
    [ 0.0456914   0.2426361  -0.93415111 -0.25768542]]

В каждой строке первые три элемента это x,y,z координаты точки в пространстве. Пытаюсь отсортировать массив по увеличению расстояний в пространстве между точками

res = sorted(result1,key=cmp_to_key(sort_dist))

функция сортировки

def sort_dist(A, B):
        return math.sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2 + (A[2] - B[2])**2)

В чем проблема? Он вообще не сортирует. А если я сделаю функцию к примеру такой:

def sort_dist(A, B):
    return (A[0] - B[0])

то все ок.


Добавить комментарий