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

13voto

RIshu Punkte 199

Wenn kein doppelter Wert in der Liste vorhanden ist:

for i in ints:
    indx = ints.index(i)
    print(i, indx)

2 Stimmen

Beachten Sie, dass die erste Option nicht verwendet werden sollte, da sie nur dann korrekt funktioniert, wenn jedes Element in der Sequenz eindeutig ist.

6 Stimmen

Die erste Option ist O(n²), eine schreckliche Idee. Wenn Ihre Liste 1000 Elemente lang ist, dauert es buchstäblich 1000 Mal länger als mit enumerate . Sie sollten diese Antwort löschen.

9voto

Amar Kumar Punkte 2352

Einfache Antwort mit While-Schleife:

arr = [8, 23, 45, 12, 78]
i = 0
while i < len(arr):
    print("Item ", i + 1, " = ", arr[i])
    i += 1

Ausgabe:

enter image description here

0 Stimmen

Bitte überprüfen Sollten wir eine Frage bearbeiten, um den Code eines Bildes in Text umzuwandeln? y Warum nicht Bilder von Code/Fehlern hochladen, wenn man eine Frage stellt? (z.B., "Bilder sollten nur verwendet werden, um Probleme zu veranschaulichen, die kann auf keine andere Weise deutlich gemacht werden, z. B. Screenshots einer Benutzeroberfläche zur Verfügung zu stellen". ) und nehmen Sie die entsprechenden Aktion (sie umfasst auch Antworten). Vielen Dank im Voraus.

8voto

PyRsquared Punkte 5873

Sie können die index Methode

ints = [8, 23, 45, 12, 78]
inds = [ints.index(i) for i in ints]

EDIT Im Kommentar wurde hervorgehoben, dass diese Methode nicht funktioniert, wenn es Duplikate in ints sollte die folgende Methode für alle Werte in ints :

ints = [8, 8, 8, 23, 45, 12, 78]
inds = [tup[0] for tup in enumerate(ints)]

Oder alternativ

ints = [8, 8, 8, 23, 45, 12, 78]
inds = [tup for tup in enumerate(ints)]

wenn Sie sowohl den Index als auch den Wert in ints als eine Liste von Tupeln.

Sie verwendet die Methode der enumerate in der ausgewählten Antwort auf diese Frage, aber mit Listenverständnis, was es schneller und mit weniger Code macht.

6voto

lola Punkte 105

Um ein Tupel (Index, Wert) in Listenauffassung zu drucken, indem man eine for Schleife:

ints = [8, 23, 45, 12, 78]
print [(i,ints[i]) for i in range(len(ints))]

Ausgabe:

[(0, 8), (1, 23), (2, 45), (3, 12), (4, 78)]

6voto

Rahul Punkte 139

Sie können einfach eine Variable verwenden wie count um die Anzahl der Elemente in der Liste zu zählen:

ints = [8, 23, 45, 12, 78]
count = 0
for i in ints:
    count = count + 1
    print('item #{} = {}'.format(count, i))

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