覺得這實在很好用, 把他記錄下來一下 python再itertools裡面有兩個很方便的東西, 一個是izip, 另外一個是cycle 首先izip, 他可以將多個list垂直合併起來使用, 這邊熟悉python的人會覺的不是也有一個zip可以使用嗎? 其實這兩個做的結果一樣, 但是過程有點差異 ex: from itertools import izip xl = [1, 5, 10] yl = [5, 10, 15] for x, y in izip(xl, yl): print x, y 上述程式碼就會(1, 5), (5, 10), (10 ,15)的印出來 那下列這行結果也是一樣 for x, y in zip(xl, yl): print x, y 所以以結果來看看不出來差異, 但是在實作上, izip是當存取到那個item, 他才會去合併相對的list item 使用時機是, 假如list已經不小了, 合併會變成超大list, 那可能會造成記憶體吃太多, 而導致out of memory 而其實你只是要存取幾個合併的時候才要的item, 並不用真的完全合併所有list, 那就用izip就好, 可以剩下一些速度跟空間 再來是cycle, 這個東西比較不直觀, 首先使用方式是cycle(iterable), 也就是要傳一個iterable的物件進去 ex: from itertools import cycle yl = [5, 10, 15] for item in cycle(yl): print item 你會發現他停不下來, 拼命印, 一直不停的印出5, 10, 15, 5, 10, 15, 5, 10, 15...etc不停重複 原因很簡單, cycle就是會幫你做出一連串重複的結果 所以通常cycle要配合其他東西使用, 下面兩個for-loop舉例 ex: from itertools import izip, cycle xl = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] yl = [5, 10, 15] print "The foll...