【问题标题】:Python iterate over all possible combinations on boolean variablesPython遍历布尔变量的所有可能组合
【发布时间】:2020-02-15 09:48:12
【问题描述】:

我在一个 dict 中有 6 个布尔变量,我想在所有可能的迭代中运行我的代码。 所以我有:

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

然后对于所有可能的组合,我想调用

my_func(params)

最好的方法是什么?

【问题讨论】:

  • 您想要组合还是排列?如果是组合,请指定组合的数量。编辑:还显示您尝试过的内容

标签: python-3.x combinations itertools


【解决方案1】:

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}

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多