У меня есть список объектов (прямоугольники). Каждый объект имеет 2 атрибута (высота и ширина). Я хотел бы получить все «ориентации» (не уверен, как назвать это точно) этого списка, поэтому все 2^n (для списка n прямоугольников) ориентации, в которых высота и ширина прямоугольников (возможно) меняются местами , Для получения списка 3 объектов это будет выглядеть следующим образом (порядок не важен):Python список объектов, получить все «ориентации» атрибутов
[R1(w, h), R2(w2, h2), R3(w3, h3)]
[R1(w, h), R2(w2, h2), R3(h3, w3)]
[R1(w, h), R2(h2, w2), R3(w3, h3)]
[R1(w, h), R2(h2, w2), R3(h3, w3)]
[R1(h, w), R2(w2, h2), R3(w3, h3)]
[R1(h, w), R2(w2, h2), R3(h3, w3)]
[R1(h, w), R2(h2, w2), R3(w3, h3)]
[R1(h, w), R2(h2, w2), R3(h3, w3)]
Мой прямоугольник класса выглядит следующим образом:
class Rectangle:
def __init__(self, height, width):
self.height = height
self.width = width
def place(self):
"""Method to place tile in a larger grid"""
def remove(self):
"""Method to remove tile from larger grid"""
Есть простой способ сделать это?
Я частично понял ваш вопрос, но данные недостаточны, чтобы получить прочную основу проблемы, о которой вы говорите. Можете ли вы быть более ясными? – ZdaR
У меня есть список объектов (прямоугольники). Эти прямоугольники можно поворачивать (так что высота и ширина меняются местами). Для списка из 8 прямоугольников это приводит к 2^8 различным ориентациям 8 прямоугольников. Есть ли простой способ генерировать эти 2^8 разных ориентаций? Надеемся, что это станет более понятным. – Koen
'[[R1 (w, h), R2 (w, h), R3 (w, h)] для _ в диапазоне (2 ** len ([R1 (w, h), R2 (w, h), R3 (w, h)]))] 'должен работать. Вы можете сохранить этот список в переменной и использовать его. –