python基础-迭代器

Posted birdfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础-迭代器相关的知识,希望对你有一定的参考价值。

1.迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果

              是下一次重复的初始值

2.为什么要有迭代器

      对于序列类型:str list tuple 可以依赖索引来迭代取值,但是对于dict,set,文件

      python必须为我们提供一种不依赖于索引的迭代取值的方式》》》迭代器

3.可迭代的对象:有 obj.__iter__方法

   a=‘asdd‘
b=[1,2,3,4,5]
c=(1,2,3,4)
d={‘aa‘:‘bb‘,‘aac‘:‘vvc‘}
f=open(‘a.txt‘,‘w‘,encoding=‘utf-8‘)
a.__iter__
b.__iter__
c.__iter__
d.__iter__
f.__iter__

4.迭代器对象:obj.__iter__   ,  obj.__next__   同时拥有这两个方法,只有文件是

      f.__iter__

      f.__next__

总结:1.可迭代对象不一定是迭代器对象,2.迭代器对象一定是可迭代对象

           3.调用obj.__iter__()方法得到的是迭代器对象(对于迭代器对象执行__iter__得到的仍然是它本身)

              len()等同于obj.__len__()     iter    和 next同理

5.for循环详解:1.调用in后边的对象.__iter__()方法拿到迭代器对象2.执行next()方法3.捕捉StopIteration异常,结束迭代

优点:提供一种统一的、不依赖于索引的取值方式,为for循环的实现提供了依据

           迭代器同一时间在内存中只存在一个值》》》》更节省内存

缺点:只能往后去,并且是一次性的

          不能统计值得个数,即长度

以上是关于python基础-迭代器的主要内容,如果未能解决你的问题,请参考以下文章

Python基础day-8[装饰器补充,迭代器(未完)]

Day4 - Python基础4 迭代器装饰器软件开发规范

Python基础 | 深浅拷贝生成器迭代器以及装饰器详解

1.17 Python基础知识 - 迭代器和生成器初识

Step4 - Python基础4 迭代器装饰器软件开发规范

Python基础之迭代器