我有一个Python列表,我想将True
和False
值的所有可能组合分配给列表的所有元素。
假设我有列表list1 = ['a', 'b']
,因此我想要一个新列表[['t','t'],['t','f'],['f','t'],['f','f']]
,它们是给定列表项的True
和False
值的所有可能组合
如果我在给定列表中有n
元素,那么我应该在新列表中添加2^n
元素,并且每个内部列表都应包含n
元素作为' t& #39;或者' f'。
我怎样才能做到这一点?
答案 0 :(得分:2)
使用itertools.product
。
>>> import itertools
>>> list(itertools.product(["t", "f"], repeat=2))
[('t', 't'), ('t', 'f'), ('f', 't'), ('f', 'f')]
>>> list(itertools.product(["t", "f"], repeat=3))
[('t', 't', 't'), ('t', 't', 'f'), ('t', 'f', 't'), ('t', 'f', 'f'), ('f', 't', 't'), ('f', 't', 'f'), ('f', 'f', 't'), ('f', 'f', 'f')]
>>> #etc
答案 1 :(得分:0)
查看itertools.product
:
import itertools
true_or_false = list(itertools.produkt(*[['t','f']]*n))