У меня есть немного кода, который запускает некоторую статистику для движущегося 3D-окна разного размера. Я создал цикл, чтобы сделать это с шагом 5 от 5 до 50, как показано ниже.
Например, сначала X = 5, Y = 5, Z = 5, затем X = 10, Y = 10, z = 10 и т. д.
Это прекрасно работает, но я хотел бы запустить цикл со всеми возможными комбинациями X, Y и Z с шагом 5.
Например
X Y Z
5 5 5
10 5 5
15 5 5
.. .. ..
50 5 5
5 10 5
5 15 5
5 20 5
.. .. ..
10 10 5
10 15 5
так далее,
так что в целом это будет 1000 возможных комбинаций, я думаю
Могу ли я сделать это с помощью чего-то вроде itertools.permutations?
Я новичок в python и кодировании, поэтому помощь будет очень признательна
#python code
sizeX = (0)
sizeY = (0)
sizeZ = (0)
count = (0)
for i in range(0,10):
count = (count + 1)
sizeX = (sizeX + 5)
sizeY = (sizeY + 5)
sizeZ = (sizeZ + 5)
#run the code
range(0,55,5)
подарит вам 0,5,10,..,50
. Вы можете комбинировать такие диапазоны с функциями itertools
.
Вы не ищете перестановок (различных способов упорядочивания вещей); вы ищете разные способы рисования из 3 разных наборов (декартово произведение).
Спасибо всем за удивительно быстрые ответы. Картезианские произведения звучат как то, что я ищу. Я добавлю пример ожидаемого результата.
Если вы точно знаете, что у вас будет 3 переменные, вы можете использовать вложенные циклы for с range
:
for i in range(5, 55, 5):
for j in range(5, 55, 5):
for k in range(5, 55, 5):
print(i, j, k)
Непонятно, что вы подразумеваете под "все возможные комбинации X, Y и Z с шагом 5". Можете ли вы показать ожидаемый результат/пример?