Python学习之路---Python迭代器与生成器
2017-10-22 10:50
411 查看
迭代器
Python最强大的功能之一,是访问集合元素的一种方式迭代器是一个可以记住遍历的位置的对象
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
两个基本的方法iter()和next()
# _*_coding:utf-8_*_ list = [1, 2, 3, 4] it = iter(list) for i in it: print(i, end=" ")
执行程序,结果如下:
1 2 3 4
使用next()函数:
# _*_coding:utf-8_*_ # 引入sys模块 import sys list = [1, 2, 3, 4] it = iter(list) while True: try: print(next(it)) except StopIteration: sys.exit()
生成器
在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。
使用yield实现斐波那契数列:
# _*_coding:utf-8_*_ # yield实现斐波那契数列 1,1,2,3,5,8,... # 引入sys模块 import sys # 生成器函数,斐波那契数列 def fb(n): a, b, counter = 1, 1, 0 while True: if (counter > n): return yield a a, b = b, a+b counter += 1 # f是一个迭代器 由生成器返回生成 f = fb(10) while True: try: print(next(f), end=" ") except StopIteration: sys.exit()
执行程序,得到结果:
1 1 2 3 5 8 13 21 34 55 89
相关文章推荐
- python学习之路 七 :生成器、迭代器
- Python学习之路7 - 生成器&迭代器
- Python学习之路六---迭代器、生成器
- python学习系列(六)迭代器生成器
- 王亟亟的Python学习之路(七)-date,continue,迭代对象,生成器
- Python学习之路-容器、切片、生成器
- python学习之路4------列表生成器
- python 学习之路(迭代器&生成器)
- Python3 学习第六弹: 迭代器与生成器
- Python学习(三):迭代器、生成器、装饰器、递归、算法、正则
- 王亟亟的Python学习之路(七)-date,continue,迭代对象,生成器
- python学习之路4------列表生成器
- 【Python学习日记】生成器 和 迭代器
- Python学习笔记010_迭代器_生成器
- Python 学习笔记 迭代器和生成器
- python学习笔记之八:迭代器和生成器
- python之路 模块,序列化,迭代器,生成器
- Python高级特性(切片 迭代 列表生成式 生成器 迭代器)学习笔记
- python学习笔记四 迭代器,生成器,装饰器(基础篇)
- python 学习2:生成器,迭代器,装饰器