Ti sei mai chiesto come possiamo prendere un elemento ciascuno da due elenchi diversi e crearli in coppia e inserirli in un nuovo elenco? Ebbene questo concetto oltre ad essere interessante è molto utile in molte aree di specializzazione. Veniamo introdotti alla funzione zip in Python nel seguente ordine:
Funzione Zip in Python
La funzione zip () è una funzione incorporata e accetta un numero qualsiasi di iterabili e restituisce un elenco di tuple. L'i-esimo elemento della tupla viene creato usando l'elemento i-esimo di ciascuno degli iterabili.
copia profonda vs superficiale java
list_A = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) print zl
Produzione:
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
Zip in Python 3
In Python 3, quando eseguiamo il codice sopra, non otterremo lo stesso risultato. Invece, otterremo:
Provalo!
Questo perché i metodi zip restituiscono un oggetto zip invece di un elenco. Questo oggetto zip è un iteratore. In altre parole, restituisce un singolo oggetto iteratore, con valori mappati da tutti i contenitori. Quindi, per ottenere i valori, convertiamo zl (dal codice sopra) in list, set o altro.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl)
Produzione:
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
Decomprimere in Python
Decomprimere significa riconvertire i valori zippati nel sé individuale così com'erano. Questo viene fatto con l'aiuto dell'operatore '*'. Quindi ora, se vogliamo mettere i vecchi valori in listA e listB dalla lista zippata zl, allora dobbiamo decomprimere zl.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] #zip listA e listB e inseriscili in una lista zl zl = zip (listA, listB) zl = list (zl) print (zl) #unzip zl e rimetti i valori in listA e listB listA, listB = zip (* zl) print (listA) print (listB)
Produzione:
dimensione di un array javascript
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
(1, 2, 3, 4)
('A', 'b', 'c', 'd')
Per comprendere chiaramente la differenza, prendiamo due nuove variabili e vi inseriamo i dati decompressi.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl) listC, listD = zip (* zl) print (listC) print (listD) print (listA) print (listB)
Produzione:
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
(1, 2, 3, 4, 5)
('A', 'b', 'c', 'd', 'e')
[1, 2, 3, 4, 5]
['A', 'b', 'c', 'd', 'e']
Come puoi vedere, listA e listB sono elenchi e listC e listD sono mostrati come tuple mostrate come output. Questa è l'unica differenza minore.
Con questo, arriviamo alla fine di questo articolo sulla funzione Zip in Python. Spero che tu abbia imparato bene i concetti e quindi provalo per essere più accurato.
Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Funzione Zip in Python' e ti risponderemo il prima possibile.
Per ottenere una conoscenza approfondita di Python e delle sue varie applicazioni, puoi farlo con la nostra formazione online dal vivo con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.