oku*_*oub 3 combinations python-itertools python-3.x
我的字典中有 6 个布尔变量,我想在所有可能的迭代上运行我的代码。所以我有:
params["is_A"] = True/False
params["is_B"] = True/False
...
Run Code Online (Sandbox Code Playgroud)
然后对于所有可能的组合,我想打电话
my_func(params)
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
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)
Run Code Online (Sandbox Code Playgroud)
输出:
{'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}
Run Code Online (Sandbox Code Playgroud)