Python zip()-metoden tar itererbare beholdere og returnerer et enkelt iteratorobjekt, med tilordnede verdier fra alle beholderne.
Python zip() Syntaks
Det er vant til kartlegg den lignende indeksen for flere beholdere slik at de kan brukes bare ved å bruke en enkelt enhet.
Syntaks: zip(*iteratorer)
Parametere: Python iterables eller containere (liste, streng osv.)
Returverdi: Returnerer et enkelt iteratorobjekt.
zip() i Python-eksempler
Python zip() med lister
I Python , brukes zip()-funksjonen til å kombinere to eller flere lister (eller andre iterables) til en enkelt iterabel, der elementer fra tilsvarende posisjoner er paret sammen. Den resulterende iterable inneholder tupler , hvor det første elementet fra hver liste er sammenkoblet, det andre elementet fra hver liste er sammenkoblet, og så videre.
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))> |
>
>Produksjon
{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}>
Python zip() med enumerate
Kombinasjonen av zip() og enumerate() er nyttig i scenarier der du ønsker å behandle flere lister eller tupler parallelt, og også trenger tilgang til indeksene deres for et bestemt formål.
Python3
mylivecricket.
names> => [> 'Mukesh'> ,> 'Roni'> ,> 'Chari'> ]> ages> => [> 24> ,> 50> ,> 18> ]> for> i, (name, age)> in> enumerate> (> zip> (names, ages)):> > print> (i, name, age)> |
>
>Produksjon
0 Mukesh 24 1 Roni 50 2 Chari 18>
Python zip() med ordbok
Zip()-funksjonen i Python brukes til å kombinere to eller flere iterable ordbøker inn i en enkelt iterabel, der tilsvarende elementer fra input iterable er paret sammen som tupler. Når du bruker zip() med ordbøker, parer den nøklene og verdiene til ordbøkene basert på deres plassering i ordboken.
Python3
stocks> => [> 'GEEKS'> ,> 'For'> ,> 'geeks'> ]> prices> => [> 2175> ,> 1127> ,> 2750> ]> new_dict> => {stocks: prices> for> stocks,> > prices> in> zip> (stocks, prices)}> print> (new_dict)> |
>
mylivericket
>Produksjon
{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}>
Python zip() med Tuple
Når det brukes med tupler, glidelås() fungerer ved å pare elementene fra tupler basert på deres posisjoner. Den resulterende iterable inneholder tupler der den i-te tuppelen inneholder det i-te elementet fra hver inndata-tuppel.
Python3
tuple1> => (> 1> ,> 2> ,> 3> )> tuple2> => (> 'a'> ,> 'b'> ,> 'c'> )> zipped> => zip> (tuple1, tuple2)> result> => list> (zipped)> print> (result)> |
>
>
Produksjon:
[(1, 'a'), (2, 'b'), (3, 'c')]>
Python zip() med flere iterables
Pythons zip()-funksjon kan også brukes til å kombinere mer enn to iterables. Den kan ta flere iterables som input og returnere en iterable av tupler, der hver tuppel inneholder elementer fra de tilsvarende posisjonene til input iterables.
Python3
list1> => [> 1> ,> 2> ,> 3> ]> list2> => [> 'a'> ,> 'b'> ,> 'c'> ]> list3> => [> 'x'> ,> 'y'> ,> 'z'> ]> zipped> => zip> (list1, list2, list3)> result> => list> (zipped)> print> (result)> |
>
>Produksjon
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>
Zipping-lister av ulik størrelse
Zip()-funksjonen vil bare iterere over den minste listen som er passert. Hvis gitt lister med forskjellig lengde, vil den resulterende kombinasjonen bare være så lang som den minste listen bestått. I følgende kodeeksempel:
hvordan få nåværende dato i java
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)> |
>
>Produksjon
Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)>
Utpakke ved hjelp av zip()
Unzipping betyr å konvertere de zippede verdiene tilbake til det individuelle selvet slik de var. Dette gjøres ved hjelp av * operatør.
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)> |
dynamisk programmering
>
>
Produksjon
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)>
Bruke zip() med Python Loops
Det er mange mulige applikasjoner som kan sies å bli utført med zip, det være seg studentdatabase eller resultatkort eller et annet verktøy som krever kartlegging av grupper. Et lite eksempel på et målkort er vist nedenfor.
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))> |
>
>Produksjon
Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>