生成所有长度为n的True / False排列?

KM142646:

尝试为真值表生成函数编写代码时出现此问题。

如何生成所有长度为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列表的所有组合的排列。

U10转发:

用途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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

生成总数为N的所有数字排列

生成一定长度的所有排列

生成列表的所有排列,而没有相邻的相等元素

如何生成列表的所有排列?

递归生成列表的所有可能排列

生成长度为N的所有数字排列

在go中生成所有排列

有效地生成所有排列

生成R中矩阵的所有排列

生成列表[1、2、2,...,n,n]的所有排列,其中每对之间的元素数在Prolog中为偶数

为每个索引生成具有单独限制的所有排列

如何设置设置。DEBUG ==仅对超级用户为True,对所有用户为False

0为False,其他所有整数为True吗?

数组的所有排列

给定n,生成大小小于0.5n的所有排列

生成所有n个字母的排列

生成所有可能的单词(“ true”,“ false”)二进制组合

查找长度为k的向量的所有非等价排列,并取n个可能值

递归列表构建:所有长度的排列

如何生成时间序列的所有排列?

如何判断列表是否按升序排列?只需要返回True或False

从 N 生成长度 K 的所有无序排列的快速算法

确定给定数组的任何排列是否使长度为 K 的所有子数组的总和相等

查找长度为 p python 的列表的 n 个排列

从基本字典开始通过排列/组合生成字典,并根据键值将结果与 True/False 相关联

如何在python中生成值为n的两个数字的所有可能排列?

从给定列表生成大小为 n 的排列,其中每个排列必须包含所有原始值,可能重复

生成所有排列集

大小为 n 算法的所有可能组合和排列