Python zip() metodas paima iteruojamus konteinerius ir grąžina vieną iteratoriaus objektą, turintį susietas reikšmes iš visų konteinerių.
Python zip() sintaksė
Taip pripratę susieti panašų kelių konteinerių indeksą, kad juos būtų galima naudoti tik naudojant vieną objektą.
Sintaksė: zip (*iteratoriai)
Parametrai: „Python“ kartojami elementai arba konteineriai (sąrašas, eilutė ir kt.)
Grąžinimo vertė: Grąžina vieną iteratoriaus objektą.
zip() Python pavyzdžiuose
Python zip() su sąrašais
Į Python , funkcija zip() naudojama dviem ar daugiau sujungti sąrašus (arba bet kuri kita iteruojama) į vieną kartojimą, kur elementai iš atitinkamų pozicijų suporuojami kartu. Gautoje kartotinėje yra korteles , kur pirmasis elementas iš kiekvieno sąrašo yra suporuotas kartu, antrasis elementas iš kiekvieno sąrašo yra suporuotas kartu ir pan.
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))> |
>
>Išvestis
{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}>
Python zip() su numerate
zip() ir derinys išvardinti () yra naudinga scenarijuose, kai norite lygiagrečiai apdoroti kelis sąrašus ar eilutes, taip pat reikia pasiekti jų indeksus bet kokiam konkrečiam tikslui.
Python3
names> => [> 'Mukesh'> ,> 'Roni'> ,> 'Chari'> ]> ages> => [> 24> ,> 50> ,> 18> ]> for> i, (name, age)> in> enumerate> (> zip> (names, ages)):> > print> (i, name, age)> |
>
>Išvestis
0 Mukesh 24 1 Roni 50 2 Chari 18>
Python zip() su žodynu
„Python“ funkcija „zip()“ naudojama norint sujungti du ar daugiau kartotinių žodynai į vieną iteraciją, kur atitinkami elementai iš įvesties kartojimo yra suporuojami kaip eilės. Naudojant zip() su žodynais, jis suporuoja žodynų raktus ir reikšmes pagal jų vietą žodyne.
Python3
stocks> => [> 'GEEKS'> ,> 'For'> ,> 'geeks'> ]> prices> => [> 2175> ,> 1127> ,> 2750> ]> new_dict> => {stocks: prices> for> stocks,> > prices> in> zip> (stocks, prices)}> print> (new_dict)> |
>
>Išvestis
{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}>
Python zip() su Tuple
Kai naudojamas su kortelėmis, zip () veikia suporuodamas elementus iš eilučių pagal jų padėtį. Gautoje iteruojamoje eilutėje yra kortelių, kur i-toje kortoje yra i-tas elementas iš kiekvienos įvesties eilės.
Python3
tuple1> => (> 1> ,> 2> ,> 3> )> tuple2> => (> 'a'> ,> 'b'> ,> 'c'> )> zipped> => zip> (tuple1, tuple2)> result> => list> (zipped)> print> (result)> |
>
>
Išvestis:
[(1, 'a'), (2, 'b'), (3, 'c')]>
Python zip() su keliais pakartojimais
Python zip() funkcija taip pat gali būti naudojama norint sujungti daugiau nei dvi kartojimo eilutes. Kaip įvestį gali būti naudojamos kelios kartotinės eilės ir grąžinama sekų kartotinė, kurioje kiekvienoje kortoje yra elementai iš atitinkamų įvesties iteracijų pozicijų.
Python3
list1> => [> 1> ,> 2> ,> 3> ]> list2> => [> 'a'> ,> 'b'> ,> 'c'> ]> list3> => [> 'x'> ,> 'y'> ,> 'z'> ]> zipped> => zip> (list1, list2, list3)> result> => list> (zipped)> print> (result)> |
>
>Išvestis
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>
Nevienodo dydžio užtrauktukų sąrašai
Funkcija zip() kartos tik mažiausią pateiktą sąrašą. Jei pateikiami skirtingo ilgio sąrašai, gautas derinys bus tik tiek, kiek praeis mažiausias sąrašas. Šiame kodo pavyzdyje:
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)> |
dhanashree verma
>
>Išvestis
Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)>
Išpakavimas naudojant zip()
Išpakavimas reiškia supakuotų reikšmių konvertavimą atgal į individualų save, koks jos buvo. Tai daroma padedant * operatorius.
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)> |
>
>
Išvestis
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)>
zip() naudojimas su Python Loops
Yra daug galimų programų, kurios gali būti vykdomos naudojant zip, nesvarbu studentų duomenų bazė arba rezultatų kortelė arba bet kuri kita programa, kuriai reikalingas grupių atvaizdavimas. Žemiau parodytas nedidelis rezultatų suvestinės pavyzdys.
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))> |
>
>Išvestis
Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>