python for循环实现一个无限循环

使用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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案