有没有可以使一个python列表迭代器向后退?
基本上我有这个
class IterTest(object):
def __init__(self, data):
self.data = data
self.__iter = None
def all(self):
self.__iter = iter(self.data)
for each in self.__iter:
mtd = getattr(self, type(each).__name__)
mtd(each)
def str(self, item):
print item
next = self.__iter.next()
while isinstance(next, int):
print next
next = self.__iter.next()
def int(self, item):
print "Crap i skipped C"
if __name__ == '__main__':
test = IterTest(['a', 1, 2,3,'c', 17])
test.all()
运行此代码会导致输出:
a
1
2
3
Crap i skipped C
我知道为什么它给我的输出,但是有一种方式我可以在str()方法向后退一步?
编辑
好的,也许让这个更清楚我不想做一个完整的反向,基本上我想知道如果有一个简单的方法来做相当于一个双向迭代器在python?