У меня есть файл, который содержит таблицу, состоящую из координат х и у прямоугольника: - PullRequest
0 голосов
/ 09 ноября 2018
2  -5
-2  4
5   6
0   0
-4  12
14   6
3   -1
7   -9
8   15
-6  -3
2   5
1   6
-2  3
-4  0
7   1
3  -2
2  -2
1   3
0   8

Как получить координаты наименьшего прямоугольника в другом файле?

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать itertools.combinations, чтобы сгенерировать список всех комбинаций двух точек в файле, отфильтровать те, которые имеют одинаковые координаты x или y, так как они не образуют прямоугольники, а затем использовать min с ключевой функцией, которая возвращает площадь прямоугольника, образованного данной парой точек, чтобы найти наименьший прямоугольник, который может быть сформирован точками в списке:

from itertools import combinations
with open('points.txt') as f:
    print(min([((x1, y1), (x2, y2)) for (x1, y1), (x2, y2) in combinations([tuple(map(int, l.split())) for l in f], 2) if x1 != x2 and y1 != y2], key=lambda p: abs((p[1][0] - p[0][0]) * (p[1][1] - p[0][1]))))

Учитывая ваш пример ввода, это выводит:

((3, -1), (2, -2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...