Эффективное манипулирование списком декартовых координат в Python

Справочная информация: Я

m написание программы, которая обрабатывает большие объемы данных, связанных с сетями вершин различных правильных форм. У меня есть рабочий генератор, который выдает список декартовых координат, соответствующих вершинам указанных фигур, на основе диапазона пользовательских параметров ввода. Затем данные передаются в фильтры, которые очищают повторяющиеся записи, сортируют данные и различные другие функции, откуда очищенные данные поступают в модуль холста, который проходит по циклу и рисует вершины.

Вопрос:

Мне нужно реализовать новый фильтр, который эффективно проходит по координатам, сравнивая каждую пару с любой другой парой, т. Е. ->(x1,y1)(x2,y2) к ->, ->(x1,y1)(xn,yn)(x2,y2)(x3,y3) к ->(x2,y2)(xn,yn) и т.д. для всех записей и, например, если связь между(x1,y1) а также(x5,y5) припадки[(x5-x1)^2+(y5-y1)^2]=vertex_spacing^2затем эти два набора координат соединяются с соответствующими номерами записей списка и добавляются в новый список, где одна запись будет иметь вид:[(x1,y1), (x5,y5), 0, 4] например. Какой самый эффективный метод для достижения этой цели?

Мои попытки: я

Мы рассмотрели немало методов обработки списков здесь и в различных руководствах. Я'мы пытались вложенныеза' а также 'если' циклы, но найдите, пока этот метод может работать, это приводит к чрезмерно долгому времени выполнения, а также к попытке разбить проблему на множество меньших циклов for.

Дополнительные примечания:

Конечная цель этого состоит в том, чтобы использовать полученные координаты для интерфейсных элементов интерфейса, а также сохранять и импортировать их по мере необходимости. Функция списка позиций 0 и 4 в[(x1,y1), (x5,y5), 0, 4] заключается в том, чтобы включить интерфейс для группировки координат для последующего использования в объектах холста. Метод должен быть способен обрабатывать потенциально тысячи координат.

Заранее благодарю за любую помощь, я, конечно, готов улучшить формулировку / информацию, которую яя предоставил и / или добавил пример кода, если неясно, о чем я спрашиваю, яЯ все еще новичок в этом! :)

Ответы на вопрос(4)

Ваш ответ на вопрос