PythonFunkcje wbudowane
zip()
Łączy kilka kolekcji w pary (lub krotki) odpowiadających sobie elementów.
- Zwraca
- Iterator krotek.
Przykład
#Python
names = ["Ania", "Kuba", "Ola"]
scores = [92, 78, 85]
for name, score in zip(names, scores):
print(f"{name}: {score}")
print(dict(zip(names, scores)))Wynikzapisany wynik, możesz go sprawdzić
Ania: 92
Kuba: 78
Ola: 85
{'Ania': 92, 'Kuba': 78, 'Ola': 85}
Definicja i zastosowanie
#Funkcja zip() przechodzi równolegle po kilku kolekcjach i zwraca krotki z elementów na tych samych pozycjach: pierwsza krotka zawiera pierwsze elementy, druga drugie i tak dalej.
Domyślnie kończy się na najkrótszej kolekcji, a nadmiarowe elementy dłuższych są pomijane. Od Pythona 3.10 parametr strict=True zgłosi błąd, gdy długości się różnią.
Typowe zastosowania to pętla po dwóch listach naraz, budowanie słownika dict(zip(klucze, wartosci)) i „odwracanie” listy par przez zip(*pary).
Składnia
#Składnia
zip(*iterables, strict=False)Parametry
#*iterables
kolekcje
Kolekcje do połączenia.strict
bool, domyślnie False
GdyTrue, różne długości zgłaszająValueError.
Więcej przykładów
#Python
print(list(zip([1, 2, 3], ["a", "b"])))
pairs = [("html", 11), ("css", 9)]
courses, modules = zip(*pairs)
print(courses, modules)Wynikzapisany wynik, możesz go sprawdzić
[(1, 'a'), (2, 'b')]
('html', 'css') (11, 9)
Dobre praktyki
#- Gdy listy powinny mieć równą długość, użyj
zip(..., strict=True), żeby wychwycić błędy w danych. - Do pełnego przejścia po listach różnej długości służy
itertools.zip_longest().
Powiązane hasła
#- enumerate()Dodaje licznik do elementów podczas przechodzenia pętlą.
- dict()Tworzy słownik z par klucz–wartość lub argumentów nazwanych.
- forPętla przechodząca po kolejnych elementach sekwencji lub innego obiektu iterowalnego.
- itertoolsNarzędzia do pracy z iteratorami: łączenie, grupowanie, kombinacje i nieskończone ciągi.
Widzisz błąd albo brakuje przykładu? Napisz do nas.