关于python:使用itertools从2个列表生成组合

Using itertools to generate combinations from 2 lists

本问题已经有最佳答案,请猛点这里访问。

我有两张单子:[1,2,3][4,5,6]。我想用itertools生成如下所有组合的列表

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

到目前为止,我只研究了itertools.combinations函数,它似乎只能处理这样的问题:

1
list(itertools.combinations([1,2,3,4,5,6],2))

结果不正确。如何生成上面的ResultingList

谢谢


使用产品:

1
2
3
>>> from itertools import product
>>> list(product([1,2,3], [4,5,6]))
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

对于一般的理解:

如文件所述,product相当于:((x,y) for x in A for y in B),其中a和b是输入列表


如果您不是从ITertools导入产品,那么您也可以使用这种方式

1
2
3
4
5
6
7
a=[1,2,3]
b=[4,5,6]
c=[]
for i in a:
    for j in b:
        c.append((i,j))
print c


您只需:

1
print([(i,j) for i in a for j in b])

输出:

1
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]