Какой самый эффективный способ найти общую площадь, покрытую кучей полигонов?

Вот один из способов сделать это: первая сортировка выполняется в обратном направлении по float, а связи разбиваются путем сортировки по внутреннему кортежу:

srt_lst = sorted(my_list, key=lambda (x, y): (-y, x)) #python 2
print(srt_lst)
# [(('E', 'H', 'F'), 1.0), (('G', 'J', 'I'), 1.0), (('F', 'H', 'G'), 0.8889), (('H', 'I', 'G'), 0.8889), (('I', 'K', 'J'), 0.8889), (('H', 'J', 'I'), 0.875)]

В Python 3 вы будете должны индексировать единственный параметр lambda для доступа к элементам и использовать их для сортировки:

srt_lst = sorted(my_list, key=lambda tup: (-tup[1], tup[0]))
1
задан C. McCracken 26 March 2019 в 20:47
поделиться