時,我們通常做的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
時,我們通常做的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
那麼爲什麼使用itertools.product
?這聽起來像你只需要zip
。
for x,y in zip([1,2,3],[1,2,3]):
print(x,y)
1 1
2 2
3 3
是這樣的zip工作嗎? – 2014-10-09 19:41:20
是的,這就是'zip'的工作原理。如果我說'zip([1,2,3],[4,5,6])'會產生[[1,4],(2,5),(3,6)]',這就是從兩個列表中按元素進行配對。 – CoryKramer 2014-10-09 19:44:00
爲什麼不使用zip
?
for x, y in zip([1, 2, 3], [1, 2, 3]):
...
或單迴路:
for x in [1, 2, 3]:
print x, x
for x in range(1,4):print x,x – Trilarion 2014-10-09 19:01:07
它們的長度總是相同嗎? – 2014-10-09 19:09:10
是的,它的長度總是相同的 – 2014-10-09 19:40:16