迭代器
什么是迭代器?
迭代器(Iterator) 是 Python 中访问集合元素的一种方式,迭代器有两个基本方法:iter()
和 next()
。
字符串、列表或元组对象都可用于创建迭代器:
1mylist = [1, 2, 3, 4]
2
3# iter()和next()都是Python3内置函数
4it = iter(mylist) # 创建迭代器对象
5print(next(it)) # 输出迭代器的下一个元素
迭代器对象可以用 for 语句进行遍历:
1mylist = [1, 2, 3, 4]
2it = iter(list)
3for x in it:
4 print(x)
迭代器也可以用 next() 函数遍历:
1import sys
2mylist = [1, 2, 3, 4]
3it = iter(mylist)
4while True:
5 try:
6 print(next(it))
7 except StopIteration:
8 sys.exit()
生成器
什么是生成器?
在 Python 中,使用了 yield
的函数称为**生成器(generator)**生成器是一个返回迭代器的函数,只能用于迭代操作。
1import sys
2
3def fibonacci(n):
4 a, b, counter = 0, 1, 0
5 while True:
6 if counter > n:
7 return
8 yield a
9 a, b = b, a + b
10 counter += 1
11
12f = fibonacci(10) # f是一个迭代器对象,由生成器返回生成
13
14while True:
15 try:
16 print(next(f))
17 except StopIteration:
18 sys.exit()