用户以传参的形式传递一个列表,实现迭代器,迭代器能够倒序输出列表中的数据,将数据以列表的形式返回
时间: 2024-02-24 22:55:34 浏览: 17
好的,可以使用Python中的迭代器(Iterator)和生成器(Generator)来实现该功能。以下是实现的代码:
```python
class ReverseIterator:
def __init__(self, data):
self.data = data
self.index = len(data)
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index -= 1
return self.data[self.index]
def reverse_list(data):
return list(ReverseIterator(data))
```
使用方法如下:
```python
data = [1, 2, 3, 4, 5]
for item in ReverseIterator(data):
print(item)
# 输出:5 4 3 2 1
reversed_data = reverse_list(data)
print(reversed_data)
# 输出:[5, 4, 3, 2, 1]
```
其中,`ReverseIterator`类是一个迭代器,使用时需要传入列表的数据。`__iter__`方法返回迭代器自身,`__next__`方法每次返回列表中的一个元素,直到全部迭代完成,此时抛出`StopIteration`异常。`reverse_list`函数接受一个列表作为参数,返回一个倒序的列表。