Python zip ()

Funkcja zip () pobiera iterable (może wynosić zero lub więcej), agreguje je w krotkę i zwraca.

Składnia zip()funkcji to:

 zip (* iterable)

zip () Parametry

Parametr Opis
iterables mogą być wbudowanymi iteracjami (takimi jak: list, string, dict) lub iterable zdefiniowane przez użytkownika

Zalecana lektura: Iteratory Pythona, __iter__ i __next__

Wartość zwracana z zip ()

zip() Zwraca iterator krotek w oparciu o iterowalny obiektów.

  • Jeśli nie przekażemy żadnego parametru, zip()zwraca pusty iterator
  • Jeśli przekazana zostanie pojedyncza iteracja, zip()zwraca iterator krotek, przy czym każda krotka ma tylko jeden element.
  • Jeśli przekazano wiele zip()iteracji , zwraca iterator krotek, przy czym każda krotka zawiera elementy ze wszystkich iterable.
    Załóżmy, że dwie iterowalne są przekazywane do zip(); jedna iterowalna zawierająca trzy, a druga zawierająca pięć elementów. Następnie zwrócony iterator będzie zawierał trzy krotki. Dzieje się tak, ponieważ iterator zatrzymuje się, gdy najkrótsza iteracja zostanie wyczerpana.

Przykład 1: Python zip ()

 number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)

Wynik

 () ((2, 'dwa'), (3, 'trzy'), (1, 'jeden'))

Przykład 2: Różna liczba iterowalnych elementów

 numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)

Wynik

 ((2, 'DWA'), (3, 'TRZY'), (1, 'JEDEN')) ((2, 'dwa', 'DWA'), (1, 'jeden', 'JEDEN'))

* Operator może być stosowany w połączeniu z zip()rozpakować listę.

 zip (* zippedList)

Przykład 3: Rozpakowywanie wartości za pomocą zip ()

 coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)

Wynik

 (('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5) 

Interesujące artykuły...