English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La funzione zip() accetta iterabili (può essere zero o più) e li aggrega in un tuple, quindi li restituisce.
La sintassi della funzione zip() è:
zip(*iterables)
Parametro | Descrizione |
---|---|
iterabili | Può essere un iterabile incorporato (ad esempio: elenco, stringa, dizionario) o un iterabile definito dall'utente |
Leggi anche: Iteratore Python, __iter__ e __next__
La funzione zip() restituisce un iteratore di tuple basato su oggetti iterabili.
Se non vengono passati alcuni parametri, zip() restituisce un iteratore vuoto
Se viene passato un singolo iterable, zip() restituisce un iteratore di tuple, ognuna delle quali ha un solo elemento.
Se vengono passati più Iterable, zip() restituisce un iteratore di tuple, ognuna delle quali ha elementi provenienti da tutti gli Iterable.
Supponiamo di avere due variabili iterabili passate a zip(); un oggetto iterabile contenente tre elementi e un altro contenente cinque elementi. Quindi, l'iteratore restituito conterrà tre tuple. Questo perché gli iteratori si fermano quando l'iterabile più corto si esaurisce.
number_list = [1, 2, 3] str_list = ['uno', 'due', 'tre'] # Senza parametri iterable result = zip() # Convertitore di iteratori in elenchi result_list = list(result) print(result_list) # Due iterable result = zip(number_list, str_list) # Convertire l'iteratore in set result_set = set(result) print(result_set)
Risultato di output
[] {(2, 'two'), (3, 'three'), (1, 'one')}
numbersList = [1, 2, 3] str_list = ['one', 'two'] numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Attenzione, la dimensione di numbersList e numbers_tuple è diversa result = zip(numbersList, numbers_tuple) # Convertire in set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Convertire in set result_set = set(result) print(result_set)
Risultato di output
{(2, 'TWO'), (3, 'THREE'), (1, 'ONE')} {(2, 'two', 'TWO'), (1, 'one', 'ONE')}
L'operatore * può essere utilizzato con zip() per decomprimere liste.
zip(*zippedList)
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)
Risultato di output
[(x, 3), (y, 4), (z, 5)] c = ('x', 'y', 'z') v = (3, 4, 5)