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