2015-04-16 20 views
1

我的要求是爲n個變量生成真值表,我可以使用itertables。然而,在這個要求,我有一些變量已經被設置爲真/假 對於如樣品輸入[真,假,不定,的確,未定義]生成一些已經在python中設置的變量的真值表

我想產生是

[True, False, True, True, True] 
[True, False, True, True, False] 
[True, False, False, True, True] 
[True, False, False, True, False] 

是有沒有簡單的方法來做到這一點?

回答

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) 
+0

酷,這正是我一直在尋找!謝謝!! – rrgirish

0

這樣創建一個列表的列表:

possible = [[True],[False],[True,False],[True],[True,False]] 

然後使用itertools.product

for table in itertools.product(*possible): 
    .... 
相關問題