Как получить самый длинный и закороченный край границы комнаты? - PullRequest
1 голос
/ 20 июня 2019

В Revit API я пытаюсь получить самый длинный и самый короткий край границы комнаты.(комната - это прямоугольник)

Пока у меня есть список из 4 ограничивающих ребер комнаты. (rb_curves) Это кривые.Я пытаюсь отсортировать этот список по длине каждой кривой.

sorted_rb_curves = sorted (rb_curves, key =?)

Мне интересно, что я могуназначьте «ключ» для сортировки.

Ваша помощь будет высоко ценится!

1 Ответ

1 голос
/ 20 июня 2019

Простой способ сортировки списков на основе атрибутов объекта - использование лямбды. В вашем случае это будет:

rb_curves.sort(key=lambda x: x.Length)

где Length - это атрибут, по которому вы сортируете. Обратите внимание, что это изменяет ваш исходный список (в отличие от создания нового отсортированного списка)

Это означало бы, что rb_curves[0] - самая короткая граница, rb_curves[-1] - самая длинная.

...