尝试为真值表生成函数编写代码时出现此问题。
如何生成所有长度为n的True和False排列列表的列表?换句话说,给定元素列表,[True, False]
我如何生成这些元素的所有可能的length-n组合的所有排列?
例如:
n=2
长度为2的排列是:
[[True, True], [True, False], [False, True], [False, False]]
n=3
长度为3的排列是:
[[False, False, False],[False,False,True],
[False,True,False],[False,True,True],
[True,False,False],[True,False,True],[True,True,False],[True,True,True]]
我知道此列表中有2 ^ n个列表。我也考虑过使用itertools.product
,但这似乎只能给出特定组合的排列。在这种情况下,我想我要生成长度为n的true / false列表的所有组合的排列。
用途product
:
>>> import itertools
>>> l=[False,True]
>>> list(itertools.product(l,repeat=3))
[(False, False, False), (False, False, True), (False, True, False), (False, True, True), (True, False, False), (True, False, True), (True, True, False), (True, True, True)]
>>>
并列出:
>>> import itertools
>>> l=[False,True]
>>> [list(i) for i in itertools.product(l,repeat=3)]
[[False, False, False], [False, False, True], [False, True, False], [False, True, True], [True, False, False], [True, False, True], [True, True, False], [True, True, True]]
>>>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句