Einen Python-Iterator rückwärts laufen lassen?

Es ist trotzdem eine python-Liste-iterator, rückwärts zu gehen?

Im Grunde habe ich diese

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()

Läuft dieser code ergibt in der Ausgabe:

a
1
2
3
Crap i skipped C

Weiß ich, warum es gibt mir den Ausgang, jedoch ist es ein Weg, gehe ich einen Schritt rückwärts in der str () - Methode auf, um einen Schritt?

BEARBEITEN

Okay vielleicht, um diese besser klar. Ich will nicht, um eine volle Rückseite, im Grunde, was ich wissen möchte, ob es einen einfachen Weg, um die Entsprechung einer bidirektionale Iteratoren in python?

InformationsquelleAutor der Frage UberJumper | 2010-05-05

Schreibe einen Kommentar