Das Verständnis von Iteration in Python
Was ist Iteration?
Iteration in der Programmierung bezieht sich auf den Prozess, eine Reihe von Anweisungen oder einen Codeblock wiederholt auszuführen. In Python ist Iteration ein grundlegendes Konzept, das es Ihnen ermöglicht, mit Sequenzen wie Listen, Tupeln und Zeichenketten sowie anderen iterierbaren Objekten zu arbeiten.
Iterierbare Objekte
Ein iterierbares Objekt ist ein Objekt, über das iteriert werden kann, was bedeutet, dass es durchlaufen werden kann und seine Elemente einzeln abgerufen werden können. In Python gehören zu den üblichen iterierbaren Objekten:
- Listen
- Tupel
- Zeichenketten
- Dictionaries
- Mengen
- Dateien
- Benutzerdefinierte Objekte, die das Iterator-Protokoll implementieren
Die for
-Schleife
Die for
-Schleife ist die am häufigsten verwendete Methode, um über ein iterierbares Objekt in Python zu iterieren. Die for
-Schleife ermöglicht es Ihnen, einen Codeblock für jedes Element im iterierbaren Objekt auszuführen.
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
Ausgabe:
apple
banana
cherry
Die while
-Schleife
Die while
-Schleife ist eine andere Möglichkeit, Iteration in Python zu implementieren. Die while
-Schleife führt einen Codeblock solange aus, wie eine bestimmte Bedingung wahr ist.
count = 0
while count < 5:
print(count)
count += 1
Ausgabe:
0
1
2
3
4
Iteratoren und das Iterator-Protokoll
Im Hintergrund verwenden die for
-Schleife und andere Iterationsmechanismen in Python das Iterator-Protokoll. Ein Iterator ist ein Objekt, das das Iterator-Protokoll implementiert, das zwei Methoden definiert: __iter__()
und __next__()
. Die __iter__()
-Methode gibt das Iterator-Objekt selbst zurück, und die __next__()
-Methode gibt das nächste Element in der Sequenz zurück.
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index < len(self.data):
result = self.data[self.index]
self.index += 1
return result
else:
raise StopIteration()
my_iterator = MyIterator([1, 2, 3, 4, 5])
for item in my_iterator:
print(item)
Ausgabe:
1
2
3
4
5