Генерация Комбинаций в Python

Я не уверен, как пойти об этом в Python, если его даже возможный. То, что я должен сделать, создают массив (или матрица или вектор?) от 3 отдельных массивов. Каждый массив как 4 элемента как таковых, они возвращают это:

Class1 = [1,2,3,4] Class2 = [1,2,3,4] Class3 = [1,2,3,4]

Теперь то, что я хотел бы сделать, возвратить все возможные комбинации этих трех классов.

Пример:

1 1 1
2 1 1
3 1 1
4 1 1
1 2 1
2 2 1
3 2 1
4 2 1...

... и так далее к 64 строкам (4 элемента *16 возможных комбинаций для каждого класса = 64 строки

Я надеюсь, что существует способ сделать это в Python. Я уверен, что существует всего лишь, я не уверен, какой самый эффективный способ пойти о был бы. Возможно, "для в" инструкции циклов, которая выполняет итерации по каждому элементу для каждого класса? Или теперь, когда я исследую, это, itertools обработало бы это?

Заранее спасибо за любую справку предложен.

15
задан myClone 3 July 2010 в 00:34
поделиться

3 ответа

То, что вы хотите, называется декартовым произведением :

import itertools

iterables = [ [1,2,3,4], [88,99], ['a','b'] ]

for t in itertools.product(*iterables):
    print t
31
ответ дан 1 December 2019 в 00:59
поделиться

Самый простой способ:

for i in Class1:
    for j in Class2:
        for k in Class3:
            print (i,j,k)
8
ответ дан 1 December 2019 в 00:59
поделиться

Проверить стандартный модуль Python itertools :

itertools.combinations (итерабельность, r)

Возврат подпоследовательностей длины r элементов из итерируемого входа.

1
ответ дан 1 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: