Zip Python ()

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 a zip(); 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) 

Articoli interessanti...