Входные данные представлены в виде списка кортежей,
left_corners = [((380, 456), 1), ((1129, 456), 2), ((354, 328), 3), ((1137, 325), 4)]
right_corners = [((784, 456), 1), ((1535, 456), 2), ((778, 328), 3)]
Обычными элементами будут те, которые имеют второй элемент кортежа как 1, 2, 3
, поэтому я бы хотел, чтобы окончательное представление было выглядят так -
[(((380, 456), 1),((784, 456), 1)), (((1129, 456), 2),((1535, 456), 2)), (((354, 328), 3), ((778, 328), 3))]
Я не могу придумать решение без нескольких циклов (цикл по обоим элементам и добавление элементов, которые имеют тот же второй элемент в общий список). Есть ли способ более pythoni c? Я открыт для других представлений об этом в numpy или что-то в этом роде.
Допущения: Мы можем предположить, что оба списка отсортированы, причем ключ является вторым элементом списка, но либо left_corners
или right_corners
может иметь больше элементов, чем другой