Einer der größten Vorteile von Python ist die große Anzahl an Werkzeugen, die es für die Arbeit mit seinen Datentypen bereitstellt. Wenn man mit mehreren Listen arbeitet, ist es manchmal erforderlich, über sie zu iterieren und Operationen basierend auf den Werten aller Listen auszuführen. Dies kann erreicht werden, indem man über Indizes iteriert und dann auf die Elemente zugreift, oder indem man die eingebaute Funktion zip verwendet.
heights = [180, 190, 178]
weights = [89, 92, 77]
for i in range(len(heights)):
h, w = heights[i], weights[i]
print(h, '=>', w)
heights = [180, 190, 178]
weights = [89, 92, 77]
for h, w in zip(heights, weights):
print(h, '=>', w)
Die Funktion zip erstellt Tupel aus den Elementen der ihr übergebenen Listen. Sie kann eine beliebige Anzahl von Listen verarbeiten. So können wir zip(list1, list2, list3, ..., listn) verwenden. Sie erstellt Tupel, die jeweils n Elemente enthalten, wenn n Listen an zip übergeben werden.
Beachte, dass sie die Elemente nur bis zur kürzesten Liste zusammenführt. Wenn wir also zwei Listen übergeben, von denen eine kürzer ist als die andere, werden die letzten zusätzlichen Elemente der zweiten ignoriert.
Wenn wir streng sein möchten und nicht erlauben wollen, dass längere Listen abgeschnitten werden, können wir Python anweisen, in diesem Fall einen Fehler auszulösen, indem wir ein zusätzliches Argument strict=True übergeben:
heights = [180, 190]
names = ['Bob', 'Liza', 'Anna']
for h, name in zip(heights, names, strict=True):
print(name, '=>', h)
# ValueError: zip() argument 2 is longer than argument 1
Herausforderung
Die Eingabe enthält 3 Listen, jeweils in einer separaten Zeile. Die Elemente der Listen sind durch ein Leerzeichen getrennt. Es ist garantiert, dass die Listen die gleiche Anzahl von Elementen haben.
Das Programm soll eine neue Liste ausgeben, die das Produkt dieser 3 Listen enthält.