Python 的内建模块 itertools 提供了非常有用的用于操作迭代对象的函数。
itertools 的 Count 函数会创建一个无限的迭代器。
import itertools from collections import Iterator values = itertools.count(1) print(isinstance(values, Iterator)) # True for value in values: print(value)
当然我们也可以实现一个无限的迭代器。
from collections import Iterator def mycount(bgdata=0): # 默认从 0 开始生成无数整数的生成器 bgdata = bgdata while True: yield bgdata bgdata += 1 values = mycount(1) print(isinstance(values, Iterator)) # True(生成器是迭代器) for value in values: print(value)
itertools 的 cycle 函数会把传入的容器无限重复下去。
import itertools values = itertools.cycle(u"老鸟python") # 参数可以是任何 Python 内置容器以及自定义容器 for value in values: print(value)
itertools 的 repeat 函数负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数。
import itertools values = itertools.repeat(u"老鸟python", 3) # 限定循环 3 次 for value in values: print(value)
会使用本节课讲的 itertools 模块的函数。
了解 itertools 模块的其它函数。
自己写个 itertools 类,实现上面讲的三个函数。
imap函数似乎取消了?