Pythonitertools.product

示例

使用此函数可以迭代可迭代项列表的笛卡尔乘积。

例如,

for x, y in itertools.product(xrange(10), xrange(10)):
    print x, y

相当于

for x in xrange(10):
    for y in xrange(10):
        print x, y

像所有接受可变数量参数的python函数一样,我们可以itertools.product使用*运算符将列表传递给进行解压缩。

从而,

its = [xrange(10)] * 2
for x,y in itertools.product(*its):
    print x, y

产生与上述两个示例相同的结果。

>>> from itertools import product
>>> a=[1,2,3,4]
>>> b=['a','b','c']
>>> product(a,b)
<itertools.product object at 0x0000000002712F78>
>>> for i in product(a,b):
...     print i
...
(1, 'a')
(1, 'b')
(1, 'c')
(2, 'a')
(2, 'b')
(2, 'c')
(3, 'a')
(3, 'b')
(3, 'c')
(4, 'a')
(4, 'b')
(4, 'c')