假期ython学习第四日
Posted friendg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假期ython学习第四日相关的知识,希望对你有一定的参考价值。
迭代器,生成器
#对于序列类型:字符串,列表,元组,我们可以使用索引的方式迭代去除其他包含的元
#到那时对于字典,集合,文件等类型没有索引的,诺还想去除其内部包含的元素,则必
#须找出一种不依赖于索引的迭代方式,此为迭代器
#2.什么是可迭代对象
#可迭代对象指的是内置有__iter__方法的对象,即__iter__,如下
#什么是迭代器对象
#可迭代对象执行obk.__iter__()得到的结果就是迭代器对象
#而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象
#4.注意:
#迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象
#优点:
#- 提供一种统一的、不依赖于索引的迭代方式
#- 惰性计算,节省内存
#缺点:
##- 无法获取长度(只有在next完毕才知道到底有几个值)
#- 一次性的,只能往后走,不能往前退
迭代器中yield会暂停并保存当前的运行信息,等到下次进行循环的时候,可以直接使用
import sys def fb(n): a=0 b=1 counter=1 while(counter<n): yield a a,b=b,a+b counter+=1 f=fb(10) while True: try: print(next(f),end=" ") except StopIteration: sys.exit()
结果为
中间的yield用来保存运算进程并且保存a的值,进行下一次的运算
StopIteration用于停止进程
以上是关于假期ython学习第四日的主要内容,如果未能解决你的问题,请参考以下文章