通过拆分2元组来展平包含2元组和1元组的列表

时间:2016-12-18 21:59:29

标签: python

我在制作像

这样的列表时遇到了麻烦
[['G', 'U'], ['G', 'U'], 'R', 'G']

进入所有可能的组合,如下所示

[['G', 'G', 'R', 'G'],
['G', 'U', 'R', 'G'],
['U', 'G', 'R', 'G'],
['U', 'U', 'R', 'G']]
在Python中

。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

您可以使用itertools.product()

lst = [['G', 'U'], ['G', 'U'], 'R', 'G']
from itertools import product
[x for x in product(*lst)]

#[('G', 'G', 'R', 'G'),
# ('G', 'U', 'R', 'G'),
# ('U', 'G', 'R', 'G'),
# ('U', 'U', 'R', 'G')]

答案 1 :(得分:0)

您可以使用itertools.product轻松完成此操作。它完全符合您的描述。

>> import itertools
>> l = [['G', 'U'], ['G', 'U'], 'R', 'G']
>> i = itertools.product(*l)
>> list(i)
[('G', 'G', 'R', 'G'), ('G', 'U', 'R', 'G'), ('U', 'G', 'R', 'G'), ('U', 'U', 'R', 'G')]