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
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
Sie können dies mit diesem Code tun:
ints = [8, 23, 45, 12, 78]
index = 0
for value in (ints):
index +=1
print index, value
Verwenden Sie diesen Code, wenn Sie den Indexwert am Ende der Schleife zurücksetzen müssen:
ints = [8, 23, 45, 12, 78]
index = 0
for value in (ints):
index +=1
print index, value
if index >= len(ints)-1:
index = 0
Nach dieser Diskussion: den Listenindex des Objekts
Iteration des Schleifenzählers
Das aktuelle Idiom für die Schleifenbildung über die Indizes verwendet die eingebaute range
Funktion:
for i in range(len(sequence)):
# Work with index i
Schleifen über Elemente und Indizes können entweder durch das alte Idiom oder durch die Verwendung des neuen zip
eingebaute Funktion:
for i in range(len(sequence)):
e = sequence[i]
# Work with index i and element e
o
for i, e in zip(range(len(sequence)), sequence):
# Work with index i and element e
Dies funktioniert nicht bei der Iteration durch Generatoren. Verwenden Sie einfach enumerate().
In Ihrer Frage schreiben Sie "Wie kann ich auf den Schleifenindex zugreifen, in diesem Fall von 1 bis 5?"
Der Index für eine Liste beginnt jedoch bei Null. Wir müssen also wissen, ob Sie tatsächlich den Index und das Element für jedes Element in einer Liste wollen, oder ob Sie wirklich Zahlen wollen, die bei 1 beginnen. Glücklicherweise ist es in Python einfach, entweder das eine oder das andere zu tun.
Erstens, zur Klarstellung, die enumerate
Funktion gibt iterativ den Index und das entsprechende Element für jedes Element in einer Liste zurück.
alist = [1, 2, 3, 4, 5]
for n, a in enumerate(alist):
print("%d %d" % (n, a))
Die Ausgabe für das obige Beispiel lautet dann,
0 1
1 2
2 3
3 4
4 5
Beachten Sie, dass der Index bei 0 beginnt. Diese Art der Indizierung ist in modernen Programmiersprachen wie Python und C üblich.
Wenn Sie möchten, dass sich Ihre Schleife über einen Teil der Liste erstreckt, können Sie die Standard-Python-Syntax für einen Teil der Liste verwenden. Um zum Beispiel eine Schleife vom zweiten Element einer Liste bis zum letzten Element, aber ohne dieses, zu erstellen, könnten Sie Folgendes verwenden
for n, a in enumerate(alist[1:-1]):
print("%d %d" % (n, a))
Beachten Sie, dass auch hier der Ausgabeindex bei 0 beginnt,
0 2
1 3
2 4
Damit sind wir bei der start=n
Schalter für enumerate()
. Dadurch wird der Index einfach verschoben. Sie können auch einfach eine Zahl zum Index innerhalb der Schleife hinzufügen.
for n, a in enumerate(alist, start=1):
print("%d %d" % (n, a))
für die die Ausgabe lautet
1 1
2 2
3 3
4 4
5 5
Sie können auch dies versuchen:
data = ['itemA.ABC', 'itemB.defg', 'itemC.drug', 'itemD.ashok']
x = []
for (i, item) in enumerate(data):
a = (i, str(item).split('.'))
x.append(a)
for index, value in x:
print(index, value)
Die Ausgabe lautet
0 ['itemA', 'ABC']
1 ['itemB', 'defg']
2 ['itemC', 'drug']
3 ['itemD', 'ashok']
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.
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