Py学习  »  Python

Python遍历布尔变量的所有可能组合

okuoub • 5 年前 • 1616 次点击  

所以我有:

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

对于所有可能的组合,我想打电话给

my_func(params)

最好的方法是什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54745
 
1616 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Mark Tolonen
Reply   •   1 楼
Mark Tolonen    5 年前

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}