Python перебрать все возможные комбинации по логическим переменным - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть 6 булевых переменных в dict, и я хочу запускать свой код на всех их возможных итерациях. поэтому у меня есть:

params["is_A"] = True/False
params["is_B"] = True/False
...

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

my_func(params)

Каков наилучший способ сделать это?

1 Ответ

1 голос
/ 15 февраля 2020

itertools.product может генерировать все комбинации:

import itertools

names = 'is_A is_B is_C is_D is_E is_F'.split()

def my_func(params):
    print(params)

for p in itertools.product([True,False],repeat=6):
    params = dict(zip(names,p))
    my_func(params)

Вывод:

{'is_A': True, 'is_B': True, 'is_C': True, 'is_D': True, 'is_E': True, 'is_F': True}
{'is_A': True, 'is_B': True, 'is_C': True, 'is_D': True, 'is_E': True, 'is_F': False}
...
{'is_A': False, 'is_B': False, 'is_C': False, 'is_D': False, 'is_E': False, 'is_F': True}
{'is_A': False, 'is_B': False, 'is_C': False, 'is_D': False, 'is_E': False, 'is_F': False}
...