创建 2^n 种组合 Python
Create 2^n combinations Python
我在为学校做的 Python 项目上遇到了一些麻烦。我对 Python 的经验很少,这让我在确定如何准确解决这个问题时遇到了一些麻烦。
我需要创建 2^n 个布尔值的所有可能状态(组合)。
所以,对于 n=3,我需要表示:
(True, False, False)
(True, True, False)
(True, True, True)
等。最多所有 8 种组合。
但我真的不知道如何在 python 中执行此操作。我知道必须有嵌套的 for 循环,并且我会将组合表示为列表的列表,但这就是我想出的全部。有什么帮助吗?
>>> 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,它经常派上用场。
我在为学校做的 Python 项目上遇到了一些麻烦。我对 Python 的经验很少,这让我在确定如何准确解决这个问题时遇到了一些麻烦。
我需要创建 2^n 个布尔值的所有可能状态(组合)。
所以,对于 n=3,我需要表示:
(True, False, False)
(True, True, False)
(True, True, True)
等。最多所有 8 种组合。
但我真的不知道如何在 python 中执行此操作。我知道必须有嵌套的 for 循环,并且我会将组合表示为列表的列表,但这就是我想出的全部。有什么帮助吗?
>>> 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,它经常派上用场。