5459 Stimmen

Zugriff auf den Index in 'for'-Schleifen

Wie kann ich auf den Index in einer for Schleife?

xs = [8, 23, 45]

for x in xs:
    print("item #{} = {}".format(index, x))

Gewünschter Output:

item #1 = 8
item #2 = 23
item #3 = 45

112 Stimmen

Beachten Sie, dass Indizes in Python bei 0 beginnen, so dass die Indizes für Ihre Beispielliste 0 bis 4 und nicht 1 bis 5 sind

-5voto

LunaticXXD10 Punkte 276

Schleife mit einer "Zähler"-Variablen als Initialisierer, die ein Parameter bei der Formatierung der Zeichenkette ist als Positionsnummer. Die für Schleife greift auf die Variable "listos" zu, die die Liste darstellt. Da wir mit "i" auf die Liste zugreifen, wird "i" als Artikelpreis (oder was immer es ist) formatiert.

listos = [8,23,45,12,78]
counter = 1
for i in listos :
    print('Item #{} = {}'.format(counter,i))
    counter += 1

output:
Item #1 = 8
Item #2 = 23
Item #3 = 45
Item #4 = 12
Item #5 = 78

0 Stimmen

@calculuswhiz die while-Schleife ist ein wichtiger Codeschnipsel. der Initialisierer "counter" wird für die Positionsnummer verwendet. Über Einrückung: Der Kerl muss genug über das Programmieren wissen, dass die Einrückung wichtig ist. also nachdem du dein spezielles Attribut gemacht hast...{copy paste} kannst du die Einrückung immer noch bearbeiten. Und der Code läuft sehr schön und reibungslos

1 Stimmen

@LunaticXXD10 In Ihrem Originalpfosten die Sie in der Bearbeitungshistorie sehen können, counter += 1 wurde auf der gleichen Ebene eingerückt wie die for Schleife. In diesem Fall würde es pro Iteration der Schleife for Schleife. Hier wird pro Iteration der Schleife while Schleife. Meine Frage zum while Schleife bleibt: Warum ist es notwendig, eine while-Schleife zu verwenden, wenn der Zähler in der for Schleife? Dies ist deutlich sichtbar in Rahul's Antwort .

1 Stimmen

Re "...muss sich über die Programmierung hinreichend bewusst sein, dass die Einrückung wichtig ist" : Nun, Computer sind im wahrsten Sinne des Wortes verkopft.

-8voto

Sumit Kumar Punkte 127

Das ist auch gut so:

list2 = [11, 'sumit', 43.21, 'sharma', '44', 'test', 2]
for x in list1:
    print( 'index: ', list2.index(x), 'value:', x )

17 Stimmen

Dies funktioniert nicht, wenn sich Elemente in der Liste wiederholen, da index() sucht nach dem ersten Vorkommen von x , wobei die O( n^2 ) Zeit, die für die Suche nach jedem Element benötigt wird.

0 Stimmen

Völlig einverstanden, dass es nicht für doppelte Elemente in der Liste zu arbeiten. schließlich bin ich auch Python lernen.

0 Stimmen

Der akzeptierte Bearbeitungsvorschlag des Benutzers Raj Kumar führte zu dem Fehler "NameError: Name 'list1' ist nicht definiert"

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