In Python können mithilfe der for-Anweisung Daten einzeln aus verschiedenen Datensammlungen extrahiert werden. Es gibt jedoch Situationen, in denen Sie den Index dieser Daten sowie die Daten abrufen möchten.
Dieses Mal werde ich erklären, wie der Datenindex mit der for-Anweisung und ihrer Anwendung abgerufen wird.
Inhaltsverzeichnis [Ausblenden] 1 [Index mit for-Anweisung mithilfe der Liste abrufen](## Index mit for-Anweisung mithilfe der Liste abrufen) 1.1 [Methode mit Bereich](Methode mit ### Bereich) 1.2 [Methode mit Aufzählung](Methode mit ### Aufzählung) 2 [Zwei Listen parallel schleifen](## Zwei Listen parallel schleifen) 2.1 [Bereich verwenden](Bereich ### verwenden) 2.2 [Aufzählung verwenden](### Aufzählung verwenden) 2.3 [Zip-Funktion verwenden](Verwenden Sie die Zip-Funktion ###)
Von den for-Anweisungen, insbesondere denen, die Listen und Taples verwenden, gibt es Zeiten, in denen Sie diesen Index verwenden möchten. Daher bietet die Python for-Anweisung eine Möglichkeit, den Index des abgerufenen Elements abzurufen.
In Pythons for-Anweisung wird häufig die Bereichsfunktion zum Schleifen verwendet. Sie können diesen Bereich jedoch zum Abrufen des Index verwenden.
list = ['python', 'Hello', 'world']
for i in range(len(list)):
list_item = list[i]
print('{0}:{1}'.format(i, list_item))
Anstatt Daten direkt aus der Liste abzurufen, ruft die Funktion len () die Länge der Liste ab und schleift um diesen Betrag. Dann wird der Wert der Variablen 1 zu diesem Zeitpunkt zum Index, sodass das index-te Element in der for-Anweisung herausgenommen, in einer anderen Variablen gespeichert und schließlich zusammen ausgegeben wird.
Mit dieser Methode können Sie den Index auch ordnungsgemäß abrufen. Der Code ist jedoch etwas schwer zu lesen. Außerdem fühlt es sich seltsam an, nicht direkt in der Liste zu schleifen, obwohl die Hauptsache darin besteht, die Elemente der Liste zu extrahieren.
list = ['python', 'Hello', 'world']
for i in range(len(list)):
list_item = list[i]
print('{0}:{1}'.format(i, list_item))
Ausführungsergebnis
0:python 1:Hello 2:world
Früher habe ich den Index zum Abrufen des Index verwendet, aber der Code war sehr schwer zu lesen. Python bietet also eine Funktion zum Abrufen des Index mit sauberem Code. Das ist aufgezählt.
für Variable 1,Variable 2 in Aufzählung(aufführen):
print('{0}:{1}'.format(Variable 1,Variable 2))
Mit der Aufzählungsfunktion können Sie den Elementindex und das Element gleichzeitig abrufen. Der Index wird in Variable 1 und das Element in Variable 2 gespeichert. Im Vergleich zu der Methode mit Bereich ist die Anzahl der Zeilen kleiner und sauberer, und der Code ist sehr einfach zu lesen. Verwenden Sie zum Abrufen des Index so oft wie möglich die Aufzählungsfunktion.
list = ['python', 'Hello', 'world']
for i, j in enumerate(list):
print('{0}:{1}'.format(i, j))
Ausführungsergebnis
0:python 1:Hello 2:world
Sie können den Bereich verwenden, um zwischen zwei Listen zu wechseln, genau wie bei einer normalen for-Anweisung.
für Variable in Wut(len(Listing 1:)):
print('{0}, {1}'.format(Listing 1:[Variable],Listing 2:[Variable]))
Die Schleife wird um die Länge von Listing 1 gedreht, die von der len-Funktion extrahiert wurde. Da der Wert von 'Variable' zu diesem Zeitpunkt dem Index entspricht, können Sie die beiden Listen durch Extrahieren des variablen Elements jeder Liste in einer Schleife ausführen.
list1 = ['python', 'Hello', 'world']
list2 = ['Python', 'programming', 'beginner']
for i in range(len(list1)):
print('list1:{0}, list2{1}'.format(list1[i], list2[i]))
Ausführungsergebnis
list1:python, list2Python list1:Hello, list2programming list1:world, list2beginner
Ich konnte die beiden Listen durchlaufen und beide Elemente ausgeben. Bei der Methode mit Bereich ist der Code jedoch immer noch schwer zu lesen.
Als nächstes besteht die mögliche Methode darin, die zuvor erwähnte Aufzählung zu verwenden.
für Variable 1,Variable 2 in Aufzählung(Listing 1:):
print(‘{0}, {1}'.format(Variable 2,Listing 2:[Variable 1]))
Mit der Aufzählungsfunktion können Sie den Index des abgerufenen Elements abrufen. Mit dieser Option werden die Elemente in Listing 2 extrahiert. Der Code ist kürzer und sieht besser aus als die Verwendung von range, ist jedoch schwer zu erkennen, da zwei Variablen separat verwendet werden und er verwirrend zu sein scheint.
list1 = ['python', 'Hello', 'world']
list2 = ['Python', 'programming', 'beginner']
for i,j in enumerate(list1):
print('list1:{0}, list2:{1}'.format(j, list2[i]))
Ausführungsergebnis
list1:python, list2:Python list1:Hello, list2:programming list1:world, list2:beginner
Die Methode zum Schleifen zwischen zwei Listen mit range und enumerate ist nicht nur schwer zu erkennen, sondern weist auch ein anderes Problem auf. Es kann einen Fehler verursachen, wenn die beiden Listen unterschiedlich lang sind.
list1 = ['python', 'Hello', 'world', 'test']
list2 = ['Python', 'programming', 'beginner']
for i,j in enumerate(list1):
print('list1:{0}, list2:{1}'.format(j, list2[i]))
Ausführungsergebnis
print(‘list1:{0}, list2:{1}’.format(j, list2[i])) IndexError: list index out of range
In diesem Beispiel ist list1 4 lang, sodass die Schleife viermal wiederholt wird. Da list2 jedoch 3 lang ist, führt dies zu einem Fehler, da das Element beim vierten Mal in der Schleife nicht referenziert werden kann. Mit anderen Worten, wenn Sie range und enumerate verwenden, müssen Sie die Länge der Liste berücksichtigen, was etwas ärgerlich ist.
Um das Problem der Lesbarkeit des Codes und der Listenlänge zu lösen, empfiehlt es sich, die Zip-Funktion zu verwenden, wenn zwei Schleifen ausgeführt werden.
für Variable 1,Variable 2 im Reißverschluss(Listing 1:,Listing 2:):
print('{0}, {1}'.format(Variable 1,Variable 2))
Die Zip-Funktion nimmt jedes Element aus zwei oder mehr Listen und speichert die Elemente in Liste 1 in Variable 1 und die Elemente in Liste 2 in Variable 2. Der Code ist sehr sauber und leicht zu sehen. Wenn die Listenlängen unterschiedlich sind, wird sie automatisch an die kürzere Listenlänge angepasst, sodass Sie nicht nacheinander über die Listenlänge nachdenken müssen.
list1 = ['python', 'Hello', 'world', 'test']
list2 = ['Python', 'programming', 'beginner']
for i, j in zip(list1, list2):
print('{0}, {1}'.format(i,j))
Ausführungsergebnis
python, Python Hello, programming world, beginner
Referenzseite [Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung