什么是迭代器
(1)迭代器是用来访问集合元素的一种方式。
(2)迭代器对象从集合的第一个元素开始访问,直到结束,迭代器只会前进不会后退。
(3)迭代器有2个基本方法:iter(),next()。
(4)字符串,列表,元组都可用于创建迭代器。
迭代器的使用
#s = "abcdef"
#s = ['a', 'b', 'c']
s = ('a', 'b', 'c')
#创建迭代器对象
s_iter = iter(s)
#遍历元素
#1、for循环遍历
for x in s_iter:
print (x)
#2、next()方法遍历,见下面的生成器例子
什么是生成器
(1)使用了yield的函数被称为生成器。
(2)生成器是一个返回迭代器的函数,只能用于迭代操作。所以调用一个迭代器函数,返回的是一个迭代器对象。
(3)调用生成器函数时,每次遇到yield时,函数会保存当前运行的参数的信息,并返回yield的值,下一次调用next()方法时从上次保留的位置继续运行。
生成器的使用
import sys
def func(n):
#因为有yield所以这个函数是一个生成器函数
while n < 5:
n += 1
yield n
f = func(0) #f是一个迭代器对象
#1、可以使用for循环遍历迭代器对应
for x in f:
print (x)
#结果: 1 2 3 4 5
#2、也可以使用next()方法进行迭代
while True:
try:
print (next(f))
except StopIteration:
sys.exit()
#结果: 1 2 3 4 5