logo

zip() in Python

Metodo Python zip() prende contenitori iterabili e restituisce un singolo oggetto iteratore, con valori mappati da tutti i contenitori.

Sintassi Python zip()

È abituato mappare l'indice simile di più contenitori in modo che possano essere utilizzati solo utilizzando una singola entità.



Sintassi: zip(*iteratori)

Parametri: Iterabili o contenitori Python (elenco, stringa ecc.)
Valore di ritorno : Restituisce un singolo oggetto iteratore.

zip() negli esempi Python

Python zip() con elenchi

In Pitone , la funzione zip() viene utilizzata per combinarne due o più elenchi (o qualsiasi altro iterabile) in un singolo iterabile, dove gli elementi delle posizioni corrispondenti sono accoppiati insieme. L'iterabile risultante contiene tuple , dove il primo elemento di ogni elenco è accoppiato, il secondo elemento di ogni elenco è accoppiato e così via.



Python3






name>=> [>'Manjeet'>,>'Nikhil'>,>'Shambhavi'>,>'Astha'> ]> roll_no>=> [>4>,>1>,>3>,>2> ]> # using zip() to map values> mapped>=> zip>(name, roll_no)> print>(>set>(mapped))>

>

>

Produzione

{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}>

Python zip() con enumerate

La combinazione di zip() e enumerare() è utile negli scenari in cui si desidera elaborare più elenchi o tuple in parallelo e inoltre è necessario accedere ai relativi indici per scopi specifici.

Python3


rimuove l'ultimo carattere dalla stringa



names>=> [>'Mukesh'>,>'Roni'>,>'Chari'>]> ages>=> [>24>,>50>,>18>]> for> i, (name, age)>in> enumerate>(>zip>(names, ages)):> >print>(i, name, age)>

>

>

Produzione

0 Mukesh 24 1 Roni 50 2 Chari 18>

Python zip() con dizionario

La funzione zip() in Python viene utilizzata per combinare due o più file iterabili dizionari in un singolo iterabile, dove gli elementi corrispondenti dell'iterabile di input sono accoppiati insieme come tuple. Quando si utilizza zip() con i dizionari, accoppia le chiavi e i valori dei dizionari in base alla loro posizione nel dizionario.

Python3




stocks>=> [>'GEEKS'>,>'For'>,>'geeks'>]> prices>=> [>2175>,>1127>,>2750>]> new_dict>=> {stocks: prices>for> stocks,> >prices>in> zip>(stocks, prices)}> print>(new_dict)>

>

converti il ​​numero intero in una stringa java

>

Produzione

{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}>

Python zip() con Tuple

Se utilizzato con tuple, cerniera lampo() funziona accoppiando gli elementi delle tuple in base alle loro posizioni. L'iterabile risultante contiene tuple in cui la i-esima tupla contiene l'i-esimo elemento di ciascuna tupla di input.

Python3




tuple1>=> (>1>,>2>,>3>)> tuple2>=> (>'a'>,>'b'>,>'c'>)> zipped>=> zip>(tuple1, tuple2)> result>=> list>(zipped)> print>(result)>

>

>

Produzione:

[(1, 'a'), (2, 'b'), (3, 'c')]>

Python zip() con più iterabili

La funzione zip() di Python può essere utilizzata anche per combinare più di due iterabili. Può prendere più iterabili come input e restituire un iterabile di tuple, dove ciascuna tupla contiene elementi dalle posizioni corrispondenti degli iterabili di input.

Python3




list1>=> [>1>,>2>,>3>]> list2>=> [>'a'>,>'b'>,>'c'>]> list3>=> [>'x'>,>'y'>,>'z'>]> zipped>=> zip>(list1, list2, list3)> result>=> list>(zipped)> print>(result)>

>

>

Produzione

[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>

Comprimere elenchi di dimensioni diverse

La funzione zip() eseguirà l'iterazione solo sull'elenco più piccolo passato. Se vengono forniti elenchi di lunghezze diverse, la combinazione risultante sarà lunga solo quanto è passata l'elenco più piccolo. Nel seguente esempio di codice:

oggetto da Java a JSON

Python3




# Define lists for 'persons', 'genders', and a tuple for 'ages'> persons>=> [>'Chandler'>,>'Monica'>,>'Ross'>,>'Rachel'>,>'Joey'>,>'Phoebe'>,>'Joanna'>]> genders>=> [>'Male'>,>'Female'>,>'Male'>,>'Female'>,>'Male'>,>'Female'>,>'Female'>]> ages>=> (>35>,>36>,>38>,>34>)> # Create a zipped object combining the 'persons' and 'genders'> #lists along with the 'ages' tuple> zipped_result>=> zip>(persons, genders, ages)> # Print the zipped object> print>(>'Zipped result as a list:'>)> for> i>in> list>(zipped_result):> >print>(i)>

>

>

Produzione

Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)>

Decomprimere utilizzando zip()

Decomprimere significa riconvertire i valori compressi nel sé individuale così come erano. Questo viene fatto con l'aiuto di * operatore.

Python3




# initializing lists> name>=> [>'Manjeet'>,>'Nikhil'>,>'Shambhavi'>,>'Astha'>]> roll_no>=> [>4>,>1>,>3>,>2>]> marks>=> [>40>,>50>,>60>,>70>]> # using zip() to map values> mapped>=> zip>(name, roll_no, marks)> # converting values to print as list> mapped>=> list>(mapped)> # printing resultant values> print>(>'The zipped result is : '>, end>=>'')> print>(mapped)> print>(>' '>)> # unzipping values> namz, roll_noz, marksz>=> zip>(>*>mapped)> print>(>'The unzipped result: '>, end>=>'')> # printing initial lists> print>(>'The name list is : '>, end>=>'')> print>(namz)> print>(>'The roll_no list is : '>, end>=>'')> print>(roll_noz)> print>(>'The marks list is : '>, end>=>'')> print>(marksz)>

tipi di dati successivi

>

>

Produzione

The zipped result is : [('Manjeet', 4, 40), ('Nikhil', 1, 50), ('Shambhavi', 3, 60), ('Astha', 2, 70)] The unzipped result: The name list is : ('Manjeet', 'Nikhil', 'Shambhavi', 'Astha') The roll_no list is : (4, 1, 3, 2) The marks list is : (40, 50, 60, 70)>

Utilizzo di zip() con Python Loops

Esistono molte possibili applicazioni che si possono dire eseguite utilizzando zip, sia esso database degli studenti o scorecard o qualsiasi altra utilità che richieda la mappatura dei gruppi. Di seguito è illustrato un piccolo esempio di scorecard.

Python3




# Python code to demonstrate the application of> # zip()> # initializing list of players.> players>=> [>'Sachin'>,>'Sehwag'>,>'Gambhir'>,>'Dravid'>,>'Raina'>]> # initializing their scores> scores>=> [>100>,>15>,>17>,>28>,>43>]> # printing players and scores.> for> pl, sc>in> zip>(players, scores):> >print>(>'Player : %s Score : %d'> %> (pl, sc))>

>

>

Produzione

Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>