迭代器
迭代器

迭代器

概念:实现迭代器协议的容器对象。它基于以下两个方法:

  • next :返回容器的下一个元素
  • iter :返回迭代器本身

创建方法:

1.利用内置函数iter()创建
iter()函数包裹一个可迭代的序列即可成为迭代器。

In [52]: i = iter('zxcvbnm')

In [53]: i.__next__
Out[53]: <method-wrapper '__next__' of str_iterator object at 0x000002BB70F9FE48>

In [54]: i.__next__()
Out[54]: 'z'

In [55]: i.__next__()
Out[55]: 'x'

In [56]: next(i)
Out[56]: 'c'

2.创建自定义的迭代器
可以编写一个具有 __next__方法的类,只要这个类提供返回迭代器示例的__iter__特殊方法。

class CountDown:
    def __init__(self, step):
        self.step = step
    def __next__(self):
        """return the next element"""
        if self.step <= 0:
            raise StopIteration
        self.step -= 1
        return self.step
    def __iter__(self):
        """return the iterator itself"""
        return self

用法示例:

In [63]: for element in CountDown(4):
    ...:     print(element)
    ...:     
3
2
1
0

发表回复

您的电子邮箱地址不会被公开。