我的要求是生成n个变量的真值表,我可以使用itertables。但是,在此要求中,我将一些变量设置为True / False 例如,样本输入是[True,False,Undefined,True,Undefined]
我想要生成的是
[True, False, True, True, True]
[True, False, True, True, False]
[True, False, False, True, True]
[True, False, False, True, False]
有没有简单的方法可以做到这一点?
答案 0 :(得分:1)
不确定;我们只需构建一个列表,其中包含我们为每个元素选择的所有选项。例如:
>>> from itertools import product
>>> vv = [True, False, None, True, None]
>>> choose_from = [[True, False] if x is None else [x] for x in vv]
>>> pp = product(*choose_from)
>>> for p in pp:
... print(p)
...
(True, False, True, True, True)
(True, False, True, True, False)
(True, False, False, True, True)
(True, False, False, True, False)
答案 1 :(得分:0)
创建如下列表:
possible = [[True],[False],[True,False],[True],[True,False]]
然后使用itertools.product
:
for table in itertools.product(*possible):
....