#python #arrays #list #format #rectangles
#питон #массивы #Список #формат #прямоугольники
Вопрос:
итак, в настоящее время у меня есть 2 точки в формате [(x0, x1, y0, y1)], которые, как я знаю, имеют прямоугольную форму, но я хочу обновить этот список, чтобы он состоял из всех 4 точек прямоугольника. Примечание: прямоугольник может быть нарисован только вертикально или горизонтально на сетке,поэтому я знаю, что 4 угловые координаты будут (x1, y1), (x1, y2), (x2,y1), (x2, y2), но я не уверен, как это лучше всего сделать, чтобы он был изменен в нужном формате. В настоящее время я пытаюсь решить эту проблему на python
Комментарии:
1. Что вы написали до сих пор? Можете ли вы показать выполняемый пример кода и указать желаемый результат для примера?
2. что ты пробовал? Где ваш код?
3. Просто назначьте исходные значения 4 переменным и используйте эти переменные для создания всех пар. И перестаньте искать
the best way
— ищитеworking way
Ответ №1:
Я не знаю, в чем проблема.
Просто назначьте значения 4 переменным и используйте их для создания 4 пар
Простой Пример:
rect = [(0, 1, 2, 3)] print('rect :', rect) x1, x2, y1, y2 = rect[0] points = [(x1, y1),(x1, y2),(x2, y1),(x2,y2)] print('points:', points)
Результат:
rect : [(0, 1, 2, 3)] points: [(0, 2), (0, 3), (1, 2), (1, 3)]
И если у вас много прямоугольников, то вы можете использовать for
-loop
Простой Пример:
many_rects = [(0, 1, 2, 3), (10, 11, 12, 13)] print('many_rects :', many_rects) many_points = [] for rect in many_rects: x1, x2, y1, y2 = rect points = [(x1, y1),(x1, y2),(x2, y1),(x2,y2)] many_points.append(points) #many_points.extend(points) # as flatten list print('many_points:', many_points)
Результат:
many_rects : [(0, 1, 2, 3), (10, 11, 12, 13)] many_points: [[(0, 2), (0, 3), (1, 2), (1, 3)], [(10, 12), (10, 13), (11, 12), (11, 13)]] # flatten list many_points: [(0, 2), (0, 3), (1, 2), (1, 3), (10, 12), (10, 13), (11, 12), (11, 13)]