Python 反向列表迭代器实现
代码:
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
解释:
-
ReverseListIterator 类: 该类定义了一个反向列表迭代器。
__init__(self, data): 初始化方法,接收一个列表data作为参数。__next__(self): 迭代器协议的__next__方法,用于返回下一个元素。它从列表末尾开始遍历,并递减索引_i。当_i等于 0 时,表示遍历结束,抛出StopIteration异常。__iter__(self): 迭代器协议的__iter__方法,返回自身实例。
-
示例: 代码创建了一个列表
data并使用ReverseListIterator创建了一个反向迭代器reverse_list。for循环遍历reverse_list,并打印每个元素。
结论:
该代码示例展示了如何用 Python 实现一个反向列表迭代器,并演示了如何使用该迭代器反向遍历列表。
原文地址: https://www.cveoy.top/t/topic/paf2 著作权归作者所有。请勿转载和采集!