Перечислить 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 попытается упорядочить и затем объединить