python中的迭代器和生成器
2017-10-05 07:40
239 查看
1、列表生成式
生成器:只有在调用时才会生成相应的数据,只记录当前位置,只有一个__next__()方法。next()# Author:dancheng
def fib(max):
n, a, b = 0, 0, 1
while n < max:
#print(b)
yield b
a, b = b, a + b #这句话相当于t(b, a + b) a = t[0] b = t[1]
n = n + 1
return 'done' #return 是异常时打印的消息
# f = fib(10)
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# for i in f:
# print(f.__next__())、
g = fib(6)
while True:
try:
x = next(g)
print('g:', x)
except StopIteration as e:
print('Generator return value', e.value)
break
凡是可作用于for循环的对象都是可迭代对象
凡是可作用于next()函数的对象都是迭代器对象
集合数据类型如list、dict、str等是可迭代对象但不是迭代器对象,不过可以通过iter()函数获得一个Iterator对象。
相关文章推荐
- Python学习之迭代对象、迭代器、生成器
- 循序渐进Python3(四) -- 装饰器、迭代器和生成器
- Python基础知识7:生成器和迭代器、递归
- python迭代器 生成器 装饰器
- python中迭代器和生成器的区别
- python 可迭代对象,迭代器,生成器
- Python 进阶 —— 迭代器与生成器
- Python学习总结-迭代器与生成器
- Python迭代器与生成器
- python中的迭代器与生成器
- python 迭代器 生成器 生成器表达式
- Python的迭代器和生成器使用实例
- 第八章 Python可迭代对象、迭代器和生成器
- python 迭代器 生成器
- 【Python】[高级特性]切片,迭代,列表生成式,生成器,迭代器
- Python学习笔记--迭代器&生成器
- python中的迭代器与生成器 .
- Python基础教程----迭代器和生成器,递归,八皇后(2)
- python学习系列(六)迭代器生成器
- python迭代器和生成器