python创建长度为n的list_python – 生成True / False的所有length-n排列?

在尝试为真值表生成函数编写代码时出现了这个问题.

如何生成所有length-n排列True和False的列表?换句话说,给定元素列表[True,False],如何生成这些元素的所有可能长度-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的真/假列表的所有组合的排列.

解决方法:

使用产品:

>>> 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]]

>>>

标签:python,boolean,permutation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值