Python:生成一个包含多个列表中列表的列表

时间:2013-11-12 08:01:28

标签: python

我有以下列表:

[1,2,3]
[1]
[1,2,3,4]

从上面,我想生成一个包含以下内容的列表:

[[1,1,1],[1,1,2],[1,1,3],[1,1,4],
[2,1,1], [2,1,2], [2,1,3], [2,1,4],
[3,1,2], [3,1,3],[3,1,4]]

这个过程叫什么?

生成python列表的阶乘?

是否有内置库可以执行此操作?

1 个答案:

答案 0 :(得分:0)

正如其他答案itertools.product中所建议的那样,这里是方法,但为了完整性,以及itertools.product这里使用列表理解的解决方案的例子:

result = [[x,y,z] for x in [1,2,3] for y in [1] for z in [1,2,3,4]]

使用普通的for循环可能会使它更具可读性:

result = []
for x in [1,2,3]:
    for y in [1]:
        for z in [1,2,3,4]:
            result.append([x, y, z])