English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati di Python

Operazioni di file Python

Oggetti e classi Python

Data e ora Python

Conoscenze avanzate di Python

Manuale di Python

Utilizzo e esempio di Python zip()

Funzioni built-in di Python

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 di zip()

ParametroDescrizione
iterabiliPuò essere un iterabile incorporato (ad esempio: elenco, stringa, dizionario) o un iterabile definito dall'utente

Leggi anche: Iteratore Python, __iter__ e __next__

Valore di ritorno di zip()

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.

Esempio 1: Python zip()

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')}

Esempio 2: Elementi iterabili di diversa quantità

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)

Esempio 3: Decomprimere i valori 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)

Risultato di output

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

Funzioni built-in di Python