Python3 迭代器和生成器

迭代器

什么是迭代器?

迭代器(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()
上一页
下一页