Python 中什么是迭代器 (iterator)?

推荐答案

在 Python 中,迭代器(iterator)是一个对象,它实现了迭代器协议,即包含 __iter__()__next__() 方法。迭代器用于遍历容器中的元素,并且每次调用 __next__() 方法时,它会返回容器中的下一个元素。当没有更多元素可返回时,迭代器会抛出 StopIteration 异常。

本题详细解读

迭代器的定义

迭代器是一个对象,它允许程序员遍历容器中的所有元素,而不必关心容器的内部结构。迭代器对象必须实现两个方法:

  1. __iter__():返回迭代器对象本身。这个方法使得迭代器对象可以在 for 循环中使用。
  2. __next__():返回容器中的下一个元素。如果没有更多元素,则抛出 StopIteration 异常。

迭代器的使用

迭代器通常用于 for 循环中,但也可以手动使用 next() 函数来逐个获取元素。

-- -------------------- ---- -------
- ------
------- - --- -- --

- --------
------- - -------------

- -- ------ --------
--------------------  - --- -
--------------------  - --- -
--------------------  - --- -
--------------------  - -- ------------- --

自定义迭代器

你可以通过定义一个类并实现 __iter__()__next__() 方法来创建自定义迭代器。

-- -------------------- ---- -------
----- -----------
    --- -------------- ------ -----
        ------------ - -----
        -------- - ---

    --- ---------------
        ------ ----

    --- ---------------
        -- ------------ - ---------
            ------------ -- -
            ------ ------------ - -
        -----
            ----- -------------

- --------
--- - -- ------------- ---
    --------  - --- - - - -

迭代器与可迭代对象的区别

  • 可迭代对象:实现了 __iter__() 方法的对象,可以返回一个迭代器。例如,列表、元组、字符串等都是可迭代对象。
  • 迭代器:实现了 __iter__()__next__() 方法的对象,用于遍历可迭代对象中的元素。

总结

迭代器是 Python 中用于遍历容器元素的重要工具。通过实现 __iter__()__next__() 方法,你可以创建自定义的迭代器,从而更灵活地处理数据。

纠错
反馈