itertools.product
它本身返回一个可以迭代的对象。例如:
>>> from itertools import product
>>> animal = ['dog','cat']
>>> number = [5,45,8,9]
>>> color = ['yellow','blue','black']
>>> myProduct = product(animal, number, color)
>>> for p in myProduct:
... print p
...
('dog', 5, 'yellow')
('dog', 5, 'blue')
('dog', 5, 'black')
[...]
('cat', 9, 'blue')
('cat', 9, 'black')
在这之后,myProduct
已耗尽(没有要产生的元素),因此如果再次循环,您将不会得到任何东西:
>>> for p in myProduct:
... print p
...
>>>
如果你想实现myProduct
到一个列表中,你可以这样做:
>>> myProduct = list(product(animal, number, color))
>>> len(myProduct)
24
>>> myProduct[7]
('dog', 8, 'blue')
通过附加product
对象本身到一个列表,你不会得到迭代它会产生的列表,只有对象。
>>> myProduct = product(animal, number, color)
>>> myProduct
<itertools.product object at 0x8e3ce3c>
如果需要,您可以将此对象存储在某处,并以相同的方式从中获取元素:
>>> some_list = [myProduct, myProduct]
>>> next(some_list[0])
('dog', 5, 'yellow')
>>> next(some_list[1])
('dog', 5, 'blue')
>>> next(some_list[1])
('dog', 5, 'black')
>>> next(some_list[0])
('dog', 45, 'yellow')
但我认为这不是您要找的。