Python eingebaute Funktion zip()

Aus der Python 3 Dokumentation

Iteriert parallel über mehrere iterierbare Objekte und erzeugt Tupel mit einem Element aus jedem Objekt.

Einführung

Die zip() Funktion in Python ist eine eingebaute Funktion, die zwei oder mehr iterierbare Objekte (wie Listen, Tupel oder Zeichenketten) entgegennimmt und sie zu einem einzigen Iterator von Tupeln zusammenfasst. Jedes Tupel enthält Elemente aus allen Eingabe-Iterables an derselben Position.

Beispiele

furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]

for item, amount in zip(furniture, price):
    print(f'The {item} costs ${amount}')
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40

Weitere Anwendungsfälle

Die zip-Funktion in Python fasst mehrere iterierbare Objekte zu Tupeln zusammen.

# Kombinieren von drei Listen
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]

zipped = zip(list1, list2, list3)
print(list(zipped))
[(1, 'a', True), (2, 'b', False), (3, 'c', True)]

Entpacken (Unzipping)

# Entpacken eines gezippten Objekts
zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
list1, list2 = zip(*zipped)
print(list1)
print(list2)
(1, 2, 3)
('a', 'b', 'c')

Weitere Beispiele

Zippen mit unterschiedlichen Längen

zip stoppt die Erstellung von Tupeln, sobald das kürzeste iterierbare Objekt erschöpft ist.

numbers = [1, 2, 3]
letters = ['a', 'b']

for num, letter in zip(numbers, letters):
    print(f'{num} -> {letter}')
1 -> a
2 -> b

Verwendung von zip mit Dictionaries

Sie können zip verwenden, um Schlüssel und Werte aus zwei Listen zu einem Dictionary zu kombinieren.

keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']

my_dict = dict(zip(keys, values))
print(my_dict)
{'name': 'Alice', 'age': 25, 'city': 'New York'}

Verwendung von zip mit List Comprehensions

Sie können zip in List Comprehensions für prägnanteren Code verwenden.

list1 = [1, 2, 3]
list2 = [4, 5, 6]

summed = [x + y for x, y in zip(list1, list2)]
print(summed)
[5, 7, 9]