可迭代对象就像密闭容器里的水,有货倒不出
itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极大的节省内存。
itertools提供的功能主要分为三大块,以最新版本的3.10为例:
- 对可迭代对象无限迭代,无限输出
- 对可迭代对象有限迭代
- 对可迭代对象排列组合
方法如下:
导入包
>>> from iteratortools import *
无限迭代
iteratortools.count(start=0, step=1)
数值生成器,可以指定起始位置和步长,并且步长可以为浮点数。无限输出,一直累加,在例子中需要边睡眠1s边输出。
>>> import time >>> iterator = count(4, 0.5) >>> for i in iterator: ... print(i) ... time.sleep(1) ... 4 4.5 5.0 5.5 6.0 6.5 7.0 7.5
iteratortools.cycle(iteratorable)
无限循环取出可迭代对象里的元素
>>> a = cycle("ABCD") >>> import time >>> for i in a: ... print(i) ... time.sleep(1) ... A B C D A B C D
iteratortools.repeat(object[, times])
不断重复输出整个object,如果指定了重复次数,则输出指定次数,否则将无限重复。
>>> iterator = repeat('hello world', 10) >>> >>> for i in iterator: ... print(i) ... hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world 有了这个神器,对输出1