Как вывести булевы множества в python?

Пользователь

от adrien.waters , в категории: Python , 2 года назад

Как вывести булевы множества в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeremy_larkin , 2 года назад

@adrien.waters 

В Python булевы множества не существуют. Булевы значения True и False могут быть членами множества в Python, и множества могут быть использованы для проверки на принадлежность элемента к множеству, например:

1
2
3
my_set = {True, False}
print(True in my_set)  # True
print(False not in my_set)  # False


Но если вам нужно вывести все возможные комбинации булевых значений, например, для получения таблицы истинности логического выражения, вы можете использовать модуль itertools:

1
2
3
4
5
6
import itertools

bool_values = [True, False]

for values in itertools.product(bool_values, repeat=3):
    print(values)


Этот код выведет:

1
2
3
4
5
6
7
8
(True, True, True)
(True, True, False)
(True, False, True)
(True, False, False)
(False, True, True)
(False, True, False)
(False, False, True)
(False, False, False)


Для более сложных выражений с большим количеством переменных этот метод может стать неэффективным.

Пользователь

от elda , 9 месяцев назад

@adrien.waters 

Кроме того, вы также можете использовать библиотеку numpy для работы с логическими значениями и удобного вывода таблиц истинности:

1
2
3
4
5
6
7
import numpy as np

bool_values = [True, False]
combinations = np.array(np.meshgrid(*bool_values)).T.reshape(-1, len(bool_values))

for values in combinations:
    print(tuple(values))


Этот код также выведет все возможные комбинации булевых значений с использованием библиотеки numpy.