枚举列表的每个索引中的 0,1 元素
enumerate the 0,1 element in each index of list
我想获取所有可能的枚举结果,每个索引的值为 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)
也许您想尝试使用 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)
使用 repeat = 6 将数组中的大数组设置为组合数组存储在 k 中,在 k 中你可以输入任何值,intertools 尝试排序并组合然后
我想获取所有可能的枚举结果,每个索引的值为 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)
也许您想尝试使用 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)
使用 repeat = 6 将数组中的大数组设置为组合数组存储在 k 中,在 k 中你可以输入任何值,intertools 尝试排序并组合然后