Geriye doğru gitmek için bir python listesi yineleyici yapmak için var mı? bana çıkış verir nedenPython yineleyici yapmak geriye mi gidiyor?
a
1
2
3
Crap i skipped C
biliyorum, ancak ben geriye adım bir yolu vardır: Temel olarak
ben bu
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()
çıktıda bu kod sonuçlarını Koşu sahip str() yöntemi, bir adım mı?
DÜZENLEME
Tamam belki bu daha açıklığa kavuşturmak. Tam bir ters yapmak istemiyorum, temel olarak python'da çift yönlü yineleyici eşdeğerini yapmak için kolay bir yol olup olmadığını bilmek istiyorum?
Sadece 'reversed' kullanılarak ne var? Belli bir şekilde geriye doğru gidebilmek mi istiyorsunuz yoksa sadece sonuçları geriye mi almak istiyorsunuz? – jathanism
Oh .... orta tekrarlamayı durdurmak ve yedeklemek mi istiyorsunuz? Büyük olasılıkla, tersine çevirdiğiniz ve 'reversed()' –
kullanarak geçiş yaptığınız listeyi önbelleğe almanız gerekecek, ancak bunu, Icky koduna yol açan, ancak C++ 'da çift yönlü yineleme desteğine sahip olacağız. – UberJumper