iterator(迭代器)
iterator(迭代器)是 Python 语言里的一个重要的概念。

如果一个类型的对象能支持不断得到下一个元素的操作,这种类型就是一种迭代器类型,该类型的一个对象就是一个迭代器对象。当然,一般的迭代器对象表示的是有穷的元素序列,取得下一个元素的操作存在一个终止点。但完全可能定义能给出无穷多下一个元素的迭代器,例如循环式地给出从 0 到任意整数值的迭代器类型。

Python 语言的一些基本类型是迭代器类型。也允许根据需要定义自己的类型,包括把一些类型定义成迭代器类型,使之可以用在需要迭代器的程序片段里。(有关 iterator 的更严格介绍见标准库手册 4.5 节)

Python 的几种序列类型(list、tuple、range 和 str)和集合(set)类型都是迭代器类型,它们都支持不断取得其下一个元素的操作,因此它们的对象都能当作迭代器使用。

字典类型的对象作为迭代器使用的情况比较特殊,它将不断给出其中的一个个关键码。另外,对字典 dic,dic.keys()、dic.values()、dic.items() 得到的都是迭代器,因此可以基于它们写 for 循环。前面讨论字典时给出了相应的例子。

迭代器对象的一种用途前面已经介绍过,就是为 for 语句的循环变量提供迭代值。for 语句的最一般形式是

	for 变量 in 迭代器 : 语句组 
迭代器对象的另一重要用途就是下面要介绍的 "生成式描述"。
本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。