python:将列表项分配为true和false

时间:2015-04-16 17:52:53

标签: python

我有一个Python列表,我想将TrueFalse值的所有可能组合分配给列表的所有元素。

假设我有列表list1 = ['a', 'b'],因此我想要一个新列表[['t','t'],['t','f'],['f','t'],['f','f']],它们是给定列表项的TrueFalse值的所有可能组合

如果我在给定列表中有n元素,那么我应该在新列表中添加2^n元素,并且每个内部列表都应包含n元素作为' t& #39;或者' f'。

我怎样才能做到这一点?

2 个答案:

答案 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))