2015-04-16 5 views
1

Мое требование - генерировать таблицы истинности для n переменных, для которых я могу использовать itertables. Однако, в этом требовании у меня есть некоторые переменные уже установлено значение True/False Для ввода, например, образец является [True, False, Неопределенное, True, Undefined]Создание таблиц истины с некоторыми переменными, уже заданными в python

То, что я хочу, чтобы произвести это

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

ли есть ли простой способ сделать это?

ответ

1

Sure; нам просто нужно создать список со всеми вариантами, которые мы выбираем для каждого элемента. Например:

>>> 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): 
    .... 
Смежные вопросы