python迭代对象

可迭代对象

迭代器————生成器—————协程

使用instance()检测对象是否可迭代

from collections import Iterable

print(isinstance("abc", Iterable))  # str是否可迭代
# >>> True  
print(isinstance(123, Iterable))  # int是否可迭代
# >>> False

迭代是指访问集合元素的一种方式,迭代器是一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问。直到所有的元素被访问完结束,迭代器只会往前不会后退

可迭代对象(叫做遍历也叫迭代)

  1. 可遍历对象就是可迭代对象
  2. 列表,元组,字典,字符串都是可迭代对象
  3. 100和自定义类myclas默认都是不可迭代的
  4. myclass 对象所属的类myclass如果包含了__iter__(),的方法,此时myclass就是一个可迭代对象
  5. 可迭代对象的本质:所属对象的类中包含了__iter__()方法,就是一个迭代器
  6. 检测一个对象是否可以迭代instance()

迭代器

每次for循环或者迭代出数据的时候,帮我们记录访问到数据的哪一个位置的东西叫做迭代器

我们在迭代一个可迭代对象的时候,实际上就是先获取该对象提供的一个迭代器,然后通过这个迭代器来依次获取对象中的每一个数据

记录遍历的位置
提供下一个元素的值 配合next()函数

for 循环的本质

通过iter(可迭代对象)获取要遍历的对象迭代器
next(迭代器)获取下一个元素
帮我们捕获stopiteration异常

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break
>>> 
1
2
3
4
5
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页