Python 逆序迭代器:ReverseListIterator 类实现

本示例代码展示如何使用 Python 类来实现一个逆序迭代器 ReverseListIterator,该迭代器可以方便地以逆序遍历列表中的元素。

class ReverseListIterator:
    def __init__(self, data):
        self._data = data
        self._i = len(data)

    def __next__(self):
        if self._i == 0:
            raise StopIteration
        self._i -= 1
        return self._data[self._i]

    def __iter__(self):
        return ReverseListIterator(self._data)

示例代码:

data = [1, 2, 3, 4, 5]
reverse_iter = ReverseListIterator(data)
for item in reverse_iter:
    print(item)

# Output:
# 5
# 4
# 3
# 2
# 1

代码解释:

  1. __init__(self, data): 初始化方法,接收一个列表作为输入,并将其存储在 self._data 属性中,self._i 初始化为列表长度,用于记录当前迭代位置。
  2. __next__(self): 迭代器协议方法,返回下一个元素。如果 self._i 为 0,则表示已到达列表末尾,抛出 StopIteration 异常。否则,将 self._i 减 1,并返回当前位置的元素。
  3. __iter__(self): 迭代器协议方法,返回迭代器本身,用于在循环中使用。

通过使用 ReverseListIterator 类,我们可以轻松地以逆序遍历列表中的元素。该方法高效简洁,方便理解和使用。

Python 逆序迭代器:ReverseListIterator 类实现

原文地址: https://www.cveoy.top/t/topic/pafP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录