2014-01-23 42 views

回答

4

一般为itertools.product工作:

>>> from itertools import product 
>>> for x in product(range(5), numpy.arange(0, 0.3, 0.1)): 
    print x 
...  
(0, 0.0) 
(0, 0.10000000000000001) 
(0, 0.20000000000000001) 
(1, 0.0) 
(1, 0.10000000000000001) 
(1, 0.20000000000000001) 
(2, 0.0) 
(2, 0.10000000000000001) 
(2, 0.20000000000000001) 
(3, 0.0) 
(3, 0.10000000000000001) 
(3, 0.20000000000000001) 
(4, 0.0) 
(4, 0.10000000000000001) 
(4, 0.20000000000000001) 

既然你想要的“其他”命令,你可以使用一个理解:

>>> [(x,y) for y in numpy.arange(0, 0.3, 0.1) for x in range(5)] 

[(0, 0.0), 
(1, 0.0), 
(2, 0.0), 
(3, 0.0), 
(4, 0.0), 
(0, 0.10000000000000001), 
(1, 0.10000000000000001), 
(2, 0.10000000000000001), 
(3, 0.10000000000000001), 
(4, 0.10000000000000001), 
(0, 0.20000000000000001), 
(1, 0.20000000000000001), 
(2, 0.20000000000000001), 
(3, 0.20000000000000001), 
(4, 0.20000000000000001)] 

或者你可以逆转的参数,然后反向每个元组itertools.product吐出(他们总是循环最快的最右边的元素)。

>>> [x[::-1] for x in product(numpy.arange(0, 0.3, 0.1), range(5))] 

[(0, 0.0), 
(1, 0.0), 
(2, 0.0), 
(3, 0.0), 
(4, 0.0), 
(0, 0.10000000000000001), 
(1, 0.10000000000000001), 
(2, 0.10000000000000001), 
(3, 0.10000000000000001), 
(4, 0.10000000000000001), 
(0, 0.20000000000000001), 
(1, 0.20000000000000001), 
(2, 0.20000000000000001), 
(3, 0.20000000000000001), 
(4, 0.20000000000000001)]