将列表解压缩为多种组合

时间:2014-07-28 13:09:20

标签: python list-comprehension unzip

让我们看看我是否可以解释我在寻找什么。我想根据那些列表中列表的元素来打开列表(我知道,这是啰嗦!)。

我想要这个:

a = [[1],[2],[5],[4,6],[3]] 

转变为:

b = [[[1],[2],[5],[4],[3]],[[1],[2],[5],[6],[3]]]

也适用于:

a = [[1],[2,3],[5],[4,6],[3]] 

实现:

b = [[[1],[2],[5],[4],[3]],[[1],[2],[5],[6],[3]],[[1],[3],[5],[4],[3]],[[1],[3],[5],[6],[3]]]

我希望我表达了属性。我一直在寻找一些执行此操作的内置函数,但我一无所获。

提前谢谢你

1 个答案:

答案 0 :(得分:4)

您正在寻找itertools.product

>>> import itertools
>>> a = [[1],[2,3],[5],[4,6],[3]]
>>> for tup in itertools.product(*a):
...     print tup
...
(1, 2, 5, 4, 3)
(1, 2, 5, 6, 3)
(1, 3, 5, 4, 3)
(1, 3, 5, 6, 3)

如果你真的想要,可以将元组转换为列表并将元素包装在单元素列表中。