Перечислить 0,1 элемент в каждом индексе списка

Я хочу получить все возможные результаты перечисления, которые имеют 0 или 1 в качестве значения в каждом индексе.

Ниже мой код и результат. Как я могу улучшить свой код? Я хочу избежать слишком многих for петли.

k=[0,0,0,0,0,0]
list_dic={}
for a in range(2):
    k[0]=a
    for b in range(2):
        k[1]=b
        for c in range(2):
            k[2]=c
            for d in range(2):
                k[3]=d
                for e in range(2):
                    k[4]=e
                    for f in range(2):
                        k[5]=f
                        list_dic[tuple(k)]=0

enum_list=list((list_dic.keys()))
print(enum_list)

1 ответ

Решение

Может быть, вы хотите попробовать с intertools:

import itertools
k = [0,1]

ret = itertools.product(k, repeat = 6)

for i in ret:
    print i

выход:

(0, 0, 0, 0, 0, 0)
(0, 0, 0, 0, 0, 1)
(0, 0, 0, 0, 1, 0)
(...many arrays..)
(1, 1, 1, 1, 0, 1)
(1, 1, 1, 1, 1, 0)
(1, 1, 1, 1, 1, 1)

с повторением = 6 вы устанавливаете большую часть массива в хранилище комбинированного массива в k, в k вы можете поместить любое значение, и intertools попытается упорядочить и затем объединить

Другие вопросы по тегам