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')