1. 问题:
现在想要一个具有反向迭代的迭代器,该怎样实现反向迭代的能力?
2. 解决方法:
首先,在自定义一个迭代器,在类中实现__reversed__方法;使用内置函数reversed实现反
向迭代。
- 示例:
class CountItem:
def __init__(self, start):
self.start = start
def __iter__(self):
'''正向迭代器'''
n = self.start
while n > 0:
yield n
n -= 1
def __reversed__(self):
'''反向迭代器'''
n = 1
while n <= self.start:
yield n
n += 1
print("----正向迭代:")
for i in CountItem(5):
print(i)
print("----反向迭代:")
for j in reversed(CountItem(5)):
print(j)
- 示例结果: