相关疑难解决方法(0)

让python迭代器倒退?

反正有没有让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()
Run Code Online (Sandbox Code Playgroud)

运行此代码会产生输出:

a
1
2
3
Crap i skipped C
Run Code Online (Sandbox Code Playgroud)

我知道为什么它给了我输出,但是有一种方法我可以在str()方法中向后退一步吗?

编辑

好吧也许可以让这个更清楚.我不想做完全反向,基本上我想知道是否有一种简单的方法在python中做相当于双向迭代器?

python iterator list

25
推荐指数
2
解决办法
4万
查看次数

标签 统计

iterator ×1

list ×1

python ×1