一、迭代器
迭代器可以记住便遍历的位置的对象,是python最强大的功能之一。迭代器有两基本方法:iter()和next()。给出相应示例,输入:
import sys # 引入 sys 模块
classmates = ['Joe','phenix','Michael','Ariel','Ashlee','Anika','Marie','Linda','Jenson']
iterator = iter(classmates) # 将列表classmates创建为迭代器对象iterator
while True:
try: #引入sys模块中的try语句来处理异常
print(next(iterator))
except StopIteration: #出现意外就执行下面的命令
sys.exit() #退出系统
输出:
Joe
phenix
Michael
Ariel
Ashlee
Anika
Marie
Linda
Jenson
二、生成器
python中,使用了yield的函数被称为生成器。与函数不同,生成器是一个返回迭代器的函数。以下用实例实现斐波那契数列,输入:
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()
输出:
0 1 1 2 3 5 8 13 21 34 55