使用已在python中设置的一些变量生成真值表

时间:2015-04-16 00:42:28

标签: python

我的要求是生成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]

有没有简单的方法可以做到这一点?

2 个答案:

答案 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):
     ....