代码:

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_list = ReverseListIterator(data)

for item in reverse_list:
    print(item)

输出:

5
4
3
2
1

解释:

  1. ReverseListIterator 类: 该类定义了一个反向列表迭代器。

    • __init__(self, data): 初始化方法,接收一个列表 data 作为参数。
    • __next__(self): 迭代器协议的 __next__ 方法,用于返回下一个元素。它从列表末尾开始遍历,并递减索引 _i。当 _i 等于 0 时,表示遍历结束,抛出 StopIteration 异常。
    • __iter__(self): 迭代器协议的 __iter__ 方法,返回自身实例。
  2. 示例: 代码创建了一个列表 data 并使用 ReverseListIterator 创建了一个反向迭代器 reverse_list。for 循环遍历 reverse_list,并打印每个元素。

结论:

该代码示例展示了如何用 Python 实现一个反向列表迭代器,并演示了如何使用该迭代器反向遍历列表。

Python 反向列表迭代器实现

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

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