生成器:对延迟操作提供了支持,即先不返回结果,在需要时才返回。(使用生成器函数(使用yield的函数)或生成器表达式来实现)。
迭代器:用迭代协议访问可迭代对象(list、dic、set等),从而遍历对象全部或指定内容。
next函数:与迭代器一起使用,用于返回迭代对象的下一个值。(用于生成器时,可使生成器返回结果)
语法:
next =(iterable[,default]
iterable ——可迭代对象
default —— 可选,用于设置指定若下一个元素无值时,默认返回的值(未指定时,会发生stopIterable异常)
示例:
定义一个数组,并用iter()生成一个迭代对象
iter = iter([2, 4, 6, 3, 6])
while True:
try:
# 获得iter可迭代对象的下一个值
print(next(iter))
except StopIteration:
# 当遇到无值错误时,跳出循环
break