Day4_迭代器

迭代器:

是一个重复的过程,每一次重复都是基于上一次的结果而来。

可迭代对象:

凡是对象有_iter_方法(对象._iter_),该对象就是可迭代对象。

字符串,列表,元组,字典等都是可迭代对象。

可迭代对象._iter_()=i  

import try
dic={'name':'yangshuai','sex':'m',"age":18}
i=dic.__iter__()
print(i)
#可迭代对象+__iter__得到的就是迭代器对象。
#next(i) #这个相当于迭代器对象执行一次的值,打印执行一次的值可以利用print来执行。

#执行到最后,会抛出一个StopIteration异常,这样相当于程序报错,为了处理这种问题,我们可以利用try....except
iter_l=iter(i)
while True:
    try:
        print(next(iter_l))
    except StopIteration:
        break

迭代器的优点:

1,提供了一种统一的(不依赖索引)的迭代方式

2,迭代器本身,比起其他数据类型更省内存,一次只在内存中加载一个值。

迭代器的缺点:

1,一次性的往后走,不能回退

2,不如索引灵活

3,无法预知什么时候取值结束,既无法预知长度。

补充:

判断是不是可迭代对象:

dic={'name':'yangshuai','sex':'m',"age":18}
i=dic.__iter__()
from collections import Iterable,Iterator
#判断是不是可迭代对象
print(isinstance(i,Iterable))
#判断是不是迭代器
print(isinstance(i,Iterator))
原文地址:https://www.cnblogs.com/sexiaoshuai/p/7263318.html