使用while True可以輕鬆的實現一個無限循環,也叫死循環,那麼for循環能夠實現類似的功能麼?當然可以,藉助itertools模塊的cycle函數就可以
**import time
from itertools import cycle
cycle_iter = cycle([100, 200, 300])
for item in cycle_iter:
print(item)
time.sleep(1)**
這個for循環會一直進行下去,循環輸出100, 200, 300。函數cycle()僅僅是爲了實現無限循環麼?當然不是, 它提供的是一種循環遍歷的方法,下面的示例向你展示這個函數的實際應用
**lst1 = ['red', 'blue', 'white']
lst2 = ['A', 'B', 'C', 'D', 'E', 'F', 'G']**
這裏有兩個列表,現在要求你將兩個列表裏的元素進行拼接,拼接時按照順序一對一的拼接在一起,最後的結果如下
**red_A, blue_B, white_C, red_D, blue_E, white_F, red_G**
如果使用普通的方法,實現這個功能還是有一點麻煩,但使用cycle()就變得非常簡單
**from itertools import cycle
lst1 = ['red', 'blue', 'white']
lst2 = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
lst = []
color_cycle = cycle(['red', 'blue', 'white'])
for item in lst2:
color = next(color_cycle)
lst.append('{color}_{char}'.format(color=color, char=item))
print(lst)**