logo

zip() în Python

Metoda Python zip(). preia containere iterabile și returnează un singur obiect iterator, având valori mapate din toate containerele.

Sintaxa Python zip().

Este obișnuit mapați indexul similar al mai multor containere, astfel încât acestea să poată fi utilizate doar folosind o singură entitate.



Sintaxa: zip(*iteratoare)

Parametri: Iterabile sau containere Python (listă, șir etc.)
Valoare returnată : Returnează un singur obiect iterator.

zip() în exemplele Python

Python zip() cu liste

În Piton , funcția zip() este utilizată pentru a combina două sau mai multe liste (sau orice alte iterabile) într-un singur iterabil, în care elementele din pozițiile corespunzătoare sunt împerecheate. Iterabilul rezultat conține tupluri , unde primul element din fiecare listă este împerecheat împreună, al doilea element din fiecare listă este împerecheat împreună și așa mai departe.



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

>

>

Ieșire

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

Python zip() cu enumerare

Combinația de zip() și enumera() este util în scenariile în care doriți să procesați mai multe liste sau tupluri în paralel și, de asemenea, trebuie să accesați indicii acestora pentru orice scop specific.

Python3




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

>

elimina ultimul caracter din șir

>

Ieșire

0 Mukesh 24 1 Roni 50 2 Chari 18>

Python zip() cu dicţionar

Funcția zip() din Python este folosită pentru a combina două sau mai multe iterabile dicționare într-un singur iterabil, în care elementele corespunzătoare din iterabilul de intrare sunt împerecheate împreună ca tupluri. Când se utilizează zip() cu dicționare, se împerechează cheile și valorile dicționarelor în funcție de poziția lor în dicționar.

Python3




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

>

>

Ieșire

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

Python zip() cu Tuple

Când este folosit cu tupluri, zip() funcționează prin împerecherea elementelor din tupluri în funcție de pozițiile lor. Iterabilul rezultat conține tupluri în care tuplul i conține elementul i din fiecare tuplu de intrare.

Python3




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

>

>

Ieșire:

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

Python zip() cu mai multe iterabile

Funcția zip() a lui Python poate fi folosită și pentru a combina mai mult de două iterabile. Poate lua mai multe iterabile ca intrare și poate returna un iterabil de tupluri, unde fiecare tuplu conține elemente din pozițiile corespunzătoare ale iterabilelor de intrare.

Python3




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

>

convertiți întregul în șir java

>

Ieșire

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

Zip liste de dimensiuni inegale

Funcția zip() va repeta numai peste cea mai mică listă trecută. Dacă se oferă liste de lungimi diferite, combinația rezultată va fi atât cât a trecut cea mai mică listă. În următorul exemplu de cod:

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

>

>

Ieșire

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

Dezarhivare folosind zip()

Dezarhivarea înseamnă convertirea valorilor arhivate înapoi în sinele individual așa cum erau. Acest lucru se face cu ajutorul lui * operator.

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

>

>

Ieșire

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

Folosind zip() cu bucle Python

Există multe aplicații posibile despre care se poate spune că sunt executate folosind zip, fie el baza de date sau tabel de punctaj al studenților sau orice alt utilitar care necesită maparea grupurilor. Un mic exemplu de tabel de punctaj este demonstrat mai jos.

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

arhitectura stupului
>

>

Ieșire

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