La funzione zip () accetta iterabili (possono essere zero o più), li aggrega in una tupla e li restituisce.
La sintassi della zip()
funzione è:
zip (* iterabili)
parametri zip ()
Parametro | Descrizione |
---|---|
iterables | possono essere iterabili incorporati (come: list, string, dict) o iterabili definiti dall'utente |
Letture consigliate: iteratori Python, __iter__ e __next__
Valore restituito da zip ()
La zip()
funzione restituisce un iteratore di tuple basato sugli oggetti iterabili.
- Se non passiamo alcun parametro,
zip()
restituisce un iteratore vuoto - Se viene passato un singolo iterabile,
zip()
restituisce un iteratore di tuple con ogni tupla che ha un solo elemento. - Se vengono passati più iterabili,
zip()
restituisce un iteratore di tuple con ogni tupla contenente elementi da tutti gli iterabili.
Supponiamo che vengano passati due iterabili azip()
; uno iterabile contenente tre e un altro contenente cinque elementi. Quindi, l'iteratore restituito conterrà tre tuple. È perché l'iteratore si ferma quando l'iterabile più breve è esaurito.
Esempio 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)
Produzione
() ((2, 'due'), (3, 'tre'), (1, 'uno'))
Esempio 2: numero diverso di elementi iterabili
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)
Produzione
((2, 'DUE'), (3, 'TRE'), (1, 'UNO')) ((2, 'due', 'DUE'), (1, 'uno', 'UNO'))
L' operatore * può essere utilizzato insieme a zip()
per decomprimere l'elenco.
zip (* zippedList)
Esempio 3: decompressione del valore utilizzando 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)
Produzione
(('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5)