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.

552voto

0x6adb015 Punkte 7035

Pruebe range(100,-1,-1) , wobei das 3. Argument die zu verwendende Schrittweite ist (dokumentiert aquí ).

("range"-Optionen, Start, Stop, Step sind dokumentiert aquí )

251voto

Kenan Banks Punkte 196831

Meiner Meinung nach ist dies die am besten lesbare Version:

for i in reversed(xrange(101)):
    print i,

50voto

kcwu Punkte 6424
for i in range(100, -1, -1)

und eine etwas längere (und langsamere) Lösung:

for i in reversed(range(101))

for i in range(101)[::-1]

20voto

mythicalcoder Punkte 2817

Warum Ihr Code nicht funktioniert hat

Ihr Code for i in range (100, 0) ist in Ordnung, außer

der dritte Parameter ( step ) ist standardmäßig +1 . Sie müssen also den 3. Parameter für range() wie folgt angeben -1 einen Schritt zurück zu machen.

for i in range(100, -1, -1):
    print(i)

HINWEIS: Dies beinhaltet 100 und 0 in der Ausgabe.

Es gibt mehrere Möglichkeiten.

Besserer Weg

Für den pythonischen Weg, siehe PEP 0322 .

Dies ist Python3 pythonic Beispiel zu drucken von 100 bis 0 (einschließlich 100 & 0).

for i in reversed(range(101)):
    print(i)

19voto

Blixt Punkte 48333

Im Allgemeinen können Sie in Python negative Indizes verwenden, um von hinten zu beginnen:

numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
    print numbers[-i - 1]

Ergebnis:

50
40
30
20
10

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