Python zip() -menetelmä ottaa iteroitavia säilöjä ja palauttaa yhden iteraattoriobjektin, jolla on kartoitetut arvot kaikista säilöistä.
Python zip() -syntaksi
Se on tottunut kartoittaa useiden säilöjen samankaltaiset hakemistot, jotta niitä voidaan käyttää vain yhdellä kokonaisuudella.
Syntaksi : zip (*iteraattorit)
Parametrit: Pythonin iteroitavat tai säilöt (luettelo, merkkijono jne.)
Palautusarvo: Palauttaa yhden iteraattoriobjektin.
zip() Python-esimerkeissä
Python zip() luetteloineen
Sisään Python , zip()-funktiota käytetään yhdistämään kaksi tai useampia luetteloita (tai muut iteroitavat) yhdeksi iteroitavaksi, jossa elementit vastaavista paikoista yhdistetään toisiinsa. Tuloksena oleva iterable sisältää tuples , jossa kunkin luettelon ensimmäinen elementti on paritettu yhteen, kunkin luettelon toinen elementti on paritettu yhteen ja niin edelleen.
Python 3
matka mutta
name> => [> 'Manjeet'> ,> 'Nikhil'> ,> 'Shambhavi'> ,> 'Astha'> ]> roll_no> => [> 4> ,> 1> ,> 3> ,> 2> ]> # using zip() to map values> mapped> => zip> (name, roll_no)> print> (> set> (mapped))> |
>
>Lähtö
{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}>
Python zip() ja enumerate
Yhdistelmä zip() ja luetella() on hyödyllinen skenaarioissa, joissa haluat käsitellä useita listoja tai monikkoja rinnakkain ja sinun on myös käytettävä niiden indeksejä mihin tahansa tiettyyn tarkoitukseen.
Python 3
names> => [> 'Mukesh'> ,> 'Roni'> ,> 'Chari'> ]> ages> => [> 24> ,> 50> ,> 18> ]> for> i, (name, age)> in> enumerate> (> zip> (names, ages)):> > print> (i, name, age)> |
>
>Lähtö
0 Mukesh 24 1 Roni 50 2 Chari 18>
Python zip() sanakirjalla
Pythonin zip()-funktiota käytetään kahden tai useamman iteroitavan yhdistämiseen sanakirjoja yhdeksi iteroitavaksi, jossa vastaavat elementit syöte-iterablesta yhdistetään monikkoina. Käytettäessä zip():tä sanakirjojen kanssa, se yhdistää sanakirjojen avaimet ja arvot niiden sijainnin perusteella sanakirjassa.
Python 3
stocks> => [> 'GEEKS'> ,> 'For'> ,> 'geeks'> ]> prices> => [> 2175> ,> 1127> ,> 2750> ]> new_dict> => {stocks: prices> for> stocks,> > prices> in> zip> (stocks, prices)}> print> (new_dict)> |
>
>Lähtö
{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}>
Python zip() ja Tuple
Kun sitä käytetään monikoiden kanssa, postinumero() toimii yhdistämällä elementit monikoista niiden sijainnin perusteella. Tuloksena oleva iterable sisältää monikot, joissa i:s monikko sisältää i:nnen elementin jokaisesta syötetyistosta.
Python 3
tuple1> => (> 1> ,> 2> ,> 3> )> tuple2> => (> 'a'> ,> 'b'> ,> 'c'> )> zipped> => zip> (tuple1, tuple2)> result> => list> (zipped)> print> (result)> |
>
>
Lähtö:
[(1, 'a'), (2, 'b'), (3, 'c')]>
Python zip() useilla iterablesilla
Pythonin zip()-funktiota voidaan käyttää myös useamman kuin kahden iteroitavan yhdistämiseen. Se voi ottaa syötteenä useita iteroitavia ja palauttaa monikoiden iteroitavuuden, jossa jokainen monikko sisältää elementtejä syöte iteraatioiden vastaavista paikoista.
Python 3
list1> => [> 1> ,> 2> ,> 3> ]> list2> => [> 'a'> ,> 'b'> ,> 'c'> ]> list3> => [> 'x'> ,> 'y'> ,> 'z'> ]> zipped> => zip> (list1, list2, list3)> result> => list> (zipped)> print> (result)> |
>
>Lähtö
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>
Epätasaisen kokoiset vetoketjut
Zip()-funktio toistaa vain pienimmän läpäisyn listan. Jos annetaan eripituisia listoja, tuloksena oleva yhdistelmä on vain niin pitkä kuin pienin lista on läpäissyt. Seuraavassa koodiesimerkissä:
Python 3
# 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)> |
>
>Lähtö
Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)>
Purkaminen käyttämällä zip()
Purkaminen tarkoittaa pakattujen arvojen muuntamista takaisin yksilöllisiksi itseksi sellaisinaan. Tämä tehdään avulla * operaattori.
Python 3
# 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)> |
>
>
Lähtö
string.replaceall javassa
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():n käyttäminen Python Loopsin kanssa
On olemassa monia mahdollisia sovelluksia, joiden voidaan sanoa suoritettavan zip:llä, olipa se sitten opiskelijatietokanta tai tuloskortti tai mikä tahansa muu apuohjelma, joka vaatii ryhmien kartoittamista. Alla on pieni esimerkki tuloskortista.
Python 3
# 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))> |
>
>Lähtö
Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>