迭代器
Posted aheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器相关的知识,希望对你有一定的参考价值。
迭代器就是迭代的工具
迭代:指的是重复迭代,每一次迭代的结果都是基于上一次结果而来的
迭代器:
指的是迭代取值的工具
PS:如果我们想知道python中迭代器是什么,首先我们要知道什么是可迭代对象
可迭代对象
凡是内部有.__iter__()
方法的都是可迭代对象,比如str,list,tuple,dict,set,f(文件)
获取迭代器
通过序列类型.__iter__()方法得到的返回值,就是迭代器对象
list = [1,2,3] print(list.__iter__()) 打印结果: <list_iterator object at 0x0000022F3EEDC848>
如何迭代取值?
通过迭代器对象.__next__(),每执行一次,都会从迭代器对象中取一个值,取完再取的话就会报错:StopIteration
# 迭代取值 list = [1, 2, 3,4] list.__iter__().__next__() print(list.__iter__().__next__()) 打印结果: 1
这里举个例子,有4个元素取5个会怎样?
那么现在我们就可以用try和except把异常抛出
try:捕获异常(StopIteration)
except:抛出异常
list1 = [1, 2, 3, 4] list_iter = list1.__iter__() try: print(list_iter.__next__()) print(list_iter.__next__()) print(list_iter.__next__()) print(list_iter.__next__()) print(list_iter.__next__()) except StopIteration: print(‘end‘)
迭代器对象的优点
1、不依赖于索引迭代取值
2、节省内存空间
缺点:
1、取指定的某个值麻烦
2、每次取值都要从第一个开始,无法通过索引进行取值
可迭代对象和迭代器对象的区别:
可迭代对象:凡是内部有.__iter__()方法的都是可迭代对象
迭代器对象:通过序列类型.__iter__(),得到的返回值就是迭代器对象
注意:可迭代对象不一定是迭代器对象
但迭代器对象一定是可迭代对像
以上是关于迭代器的主要内容,如果未能解决你的问题,请参考以下文章