386 Stimmen

Schleife rückwärts mit Indizes in Python?

Ich versuche, eine Schleife von 100 bis 0. Wie mache ich das in Python?

for i in range (100,0) funktioniert nicht.

1voto

pnoob Punkte 21

Sie können in Ihrem Fall immer den Bereich vergrößern und von einer Variablen subtrahieren 100 - i donde i in range( 0, 101 ) .

for i in range( 0, 101 ):
    print 100 - i

1voto

Ich wollte eine Schleife durch zwei Listen rückwärts zur gleichen Zeit, so dass ich den negativen Index benötigt. Dies ist meine Lösung:

a= [1,3,4,5,2]
for i in range(-1, -len(a), -1):
    print(i, a[i])

Ergebnis:

-1 2
-2 5
-3 4
-4 3
-5 1

1voto

mohammed wazeem Punkte 1195

Sie können auch einen eigenen Umkehrmechanismus in Python erstellen. Dieser kann überall verwendet werden, um eine iterable rückwärts zu durchlaufen

class Reverse:
    """Iterator for looping over a sequence backwards"""
    def __init__(self, seq):
        self.seq = seq
        self.index = len(seq)

    def __iter__(self):
        return self

    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index -= 1
        return self.seq[self.index]

>>> d = [1,2,3,4,5]
>>> for i in Reverse(d):
...   print(i)
... 
5
4
3
2
1

0voto

Tabula Rasa Punkte 1

Ich habe dies in einer der Codeacademy-Übungen versucht (Umkehrung von Zeichen in einer Zeichenfolge ohne Verwendung von reversed noch :: -1)

def reverse(text):
    chars= []
    l = len(text)
    last = l-1
    for i in range (l):
        chars.append(text[last])
        last-=1

    result= ""   
    for c in chars:
        result += c
    return result
print reverse('hola')

0voto

darrell Punkte 45

Oh, okay, ich habe die Frage falsch gelesen, ich schätze, es geht darum, in einem Array rückwärts zu gehen? wenn ja, habe ich das:

array = ["ty", "rogers", "smith", "davis", "tony", "jack", "john", "jill", "harry", "tom", "jane", "hilary", "jackson", "andrew", "george", "rachel"]

counter = 0   

for loop in range(len(array)):
    if loop <= len(array):
        counter = -1
        reverseEngineering = loop + counter
        print(array[reverseEngineering])

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X