翼度科技»论坛 编程开发 python 查看内容

Python 迭代器Iterator详情

14

主题

14

帖子

42

积分

新手上路

Rank: 1

积分
42
1. 什么是迭代器?


  • 迭代器是一个表示数据流的对象,当我们调用next()方法时会返回容器中的下一个值
  • 迭代器中包含__iter__和__next__()方法。通过__iter__方法可以返回迭代器对象本身的方法。__next__()方法会使cur指针始终指向当前位置,即返回容器中的下一个值,如果容器中没有更多元素了,则会抛出StopIteration异常。
  • 迭代器(iterator)也是可迭代的对象(iterable)
 
2. 迭代器类型


  • Python中支持容器进行迭代,同时也提供迭代器协议支持用户自定义类进行迭代
  • 容器迭代器:container.__iter__()方法实现容器对象迭代
  • 迭代器协议:__iter__()方法和__next__()方法
  • __iter__():返回迭代器本身,容器可以与for...in结合使用
  • __next__():返回迭代器返回下一项
 
3. 迭代器分类

   容器迭代器
  1. data = [1,2,3,4]
  2. it = iter(data)
  3. print(next(it))
  4. print(next(it))
复制代码

  • Python中提供的内置容器有:list、tuple、dictionary 和 set都是可迭代对象
  • 调用iter()方法获取对应的迭代对象
  • 调用next()方法获取迭代对象下一项值。每一次调用next之后,会自动往后移到到一位,获取后面一位的数据。
遍历迭代器
  1. for i in it:
  2.     print(i)
复制代码
对于可迭代对象,我们也可以使用for...in来进行迭代
  自定义迭代器

 [code]class Myiter:    def __init__(self,times):        self.times = times    def __iter__(self):        self.n = 0        return self    def __next__(self):        if self.n

举报 回复 使用道具