登录
首页精彩阅读比while True还狠的无限迭代器
比while True还狠的无限迭代器
2022-07-06
收藏

作者:小K

来源:麦叔编程

如果只使用for语句你能写出一个像while True那样死循环么?

我们的第一反应可能会想到for语句后面的那个可迭代对象是否可能是无限的,如果这个可迭代对象是无限长,那么用for循环语句是可以实现像while True那样的无限循环(死循环)。

「今天就带大家认识下传说中的“无限迭代器”。」

无限计数器

比while True还狠的无限迭代器

使用无限迭代器需要引入itertools库。

通常我们使用计数功能,一般就是循环语句带上n += 1,

n = 0 while True: print(n)
  n += 1 

如果使用无限迭代器的话,代码是这样的,

import itertools

natuals = itertools.count(1) for n in natuals: print(n)

count方法后面的参数是累加的值。

以上两段代码按Ctrl + C可停止运行。

此时肯定有小伙伴说,这个无限迭代也就这样,没啥了不起的。还是while True语句香。那么请往下看第二种无限迭代器。

无限循环遍历器

顾名思义,这个迭代器可以做到无限遍历。

for n in range(0,60): print(n)

上面的代码,只循环一次,打印一次0~59的数字。

假设我们这个时空是永恒的,那么现实时间的计时肯定也需要永恒的。

比while True还狠的无限迭代器

这个时候就轮到无限循环遍历器登场了!

import itertools

timer = itertools.cycle(range(0,60)) for t in timer: print(t)

只要在cycle方法的参数中传入一个可迭代对象,那么这个可迭代对象将会被无限次的遍历。

同无限计数器一样,停止无限循环遍历器也需按Ctrl + C


数据分析咨询请扫描二维码

客服在线
立即咨询