使用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)
QQ交流群: 211426309