迭代器

  • 迭代器是一个可以记住遍历的位置的对象。

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

    那么也就是说,一个具备了__iter__方法的对象,就是一个可迭代对象。

  • 如何判断一个对象是否可以迭代

可以使用 isinstance() 判断一个对象是否是 Iterable 对象:

from collections import Iterable
isinstance([], Iterable)
True
  • iter()函数与next()函数

list、tuple等都是可迭代对象,我们可以通过iter()函数获取这些可迭代对象的迭代器。然后我们可以对获取到的迭代器不断使用next()函数来获取下一条数据。iter()函数实际上就是调用了可迭代对象的__iter__方法。

>>> li = [11, 22, 33, 44, 55]
>>> li_iter = iter(li) #iter用于获取可迭代对象li的迭代器,返回集合(11, 22, 33, 44, 55
>>> next(li_iter)
11
  • for item in Iterable 循环的本质就是先通过iter()函数获取可迭代对象Iterable的迭代器,然后对获取到的迭代器不断调用next()方法来获取下一个值并将其赋值给item,当遇到StopIteration的异常后循环结束。
 
posted @ 2021-01-25 23:29  lq430430  阅读(55)  评论(0)    收藏  举报