创建2 ^ n组合Python

时间:2015-11-17 12:32:43

标签: python combinations

我在为学校做的Python项目上遇到了一些麻烦。我对Python的经验很少,这让我在确定如何解决这个问题方面遇到了一些麻烦 我需要创建2 ^ n布尔值的布尔值的所有可能状态(组合)。

因此,对于n = 3,我需要表示:
(True, False, False) {
{1}} {
{1}}
。最多8种组合。

但我真的不知道如何在python中这样做。我知道必须有嵌套for循环,并且我会将这些组合表示为列表列表,但这些都是我想出来的。有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

>>> import itertools
>>> n=3
>>> list(itertools.product([True, False], repeat=n))
[(True, True, True), (True, True, False), (True, False, True), (True, False, False), (False, True, True), (False, True, False), (False, False, True), (False, False, False)]

我知道教会你如何捕鱼会更好,所以我建议你阅读itertools docs,这很常见。