Gleichzeitige Iteration über Sequenzen in Python
Um mehrere Sequenzen gleichzeitig zu durchlaufen,
kann die Funktion
zip verwendet werden.
Dabei werden alle Elemente der
Sequenzen in Form von Tupeln ausgegeben,
die aus Elementen mit demselben Index
bestehen.
Beispiel
Nehmen wir an, wir haben zwei Listen:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Lassen Sie uns ihre Elemente paarweise ausgeben:
for el in zip(lst1, lst2):
print(el)
Ergebnis des ausgeführten Codes:
('a', 1)
('b', 2)
('c', 3)
Beispiel
Durchlaufen kann man auch Sequenzen
unterschiedlichen Typs. Lassen Sie uns eine Menge
und ein Tupel durch die Schleife
und die Funktion zip schicken:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Ergebnis des ausgeführten Codes:
('a', 1)
('b', 2)
('c', 3)
Beispiel
Wenn die Länge einer Sequenz größer ist als die der zweiten, werden sie nur bis zur Länge der kürzeren durchlaufen:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Ergebnis des ausgeführten Codes:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Beispiel
Mit der Funktion zip kann man auch
drei Sequenzen durchlaufen. Dazu werden sie im
Parameter der Funktion alle durch Komma getrennt
aufgelistet:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Ergebnis des ausgeführten Codes:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Praktische Aufgaben
Gegeben sind zwei Listen:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Geben Sie ihre Elemente paarweise als Tupel aus.
Gegeben sind zwei Listen:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Erstellen Sie daraus die folgende Liste:
['a', '1', 'b', '2', 'c', '3']
Gegeben sind drei Listen:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Addieren Sie die entsprechenden Elemente dieser Listen und schreiben Sie das Ergebnis in eine neue Liste. Die Addition erfolgt nach folgendem Prinzip:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]