2014-10-09 47 views
-4

時,我們通常做的Python的組合兩個for循環,而不是在重複

import itertools 
for x, y in itertools.product([1,2,3], [1,2,3]): 
    print x, y 

它打印

1 1 
1 2 
1 3 
2 1 
2 2 
2 3 
3 1 
3 2 
3 3 

但我想的出來放了

1 1 
2 2 
3 3 
+0

for x in range(1,4):print x,x – Trilarion 2014-10-09 19:01:07

+0

它們的長度總是相同嗎? – 2014-10-09 19:09:10

+0

是的,它的長度總是相同的 – 2014-10-09 19:40:16

回答

3

那麼爲什麼使用itertools.product?這聽起來像你只需要zip

for x,y in zip([1,2,3],[1,2,3]): 
    print(x,y) 


1 1 
2 2 
3 3 
+0

是這樣的zip工作嗎? – 2014-10-09 19:41:20

+0

是的,這就是'zip'的工作原理。如果我說'zip([1,2,3],[4,5,6])'會產生[[1,4],(2,5),(3,6)]',這就是從兩個列表中按元素進行配對。 – CoryKramer 2014-10-09 19:44:00

2

爲什麼不使用zip

for x, y in zip([1, 2, 3], [1, 2, 3]): 
    ... 

或單迴路:

for x in [1, 2, 3]: 
    print x, x