Python zip() metode tager itererbare containere og returnerer et enkelt iteratorobjekt med tilknyttede værdier fra alle containerne.
Python zip() Syntaks
Det er vant til kortlæg det lignende indeks over flere beholdere, så de kan bruges kun ved hjælp af en enkelt enhed.
Syntaks: zip(*iteratorer)
Parametre: Python iterables eller containere (liste, streng osv.)
Returværdi: Returnerer et enkelt iteratorobjekt.
zip() i Python-eksempler
Python zip() med lister
I Python , bruges zip()-funktionen til at kombinere to eller flere lister (eller andre iterables) til en enkelt iterable, hvor elementer fra tilsvarende positioner er parret sammen. Den resulterende iterable indeholder tupler , hvor det første element fra hver liste er parret sammen, det andet element fra hver liste er parret sammen, 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))> |
>
>Produktion
{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)}> Python zip() med enumerate
Kombinationen af zip() og opregne() er nyttig i scenarier, hvor du ønsker at behandle flere lister eller tupler parallelt, og også skal have adgang til deres indekser til ethvert specifikt 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)> |
>
>Produktion
0 Mukesh 24 1 Roni 50 2 Chari 18>
Python zip() med ordbog
Zip()-funktionen i Python bruges til at kombinere to eller flere iterable ordbøger ind i en enkelt iterabel, hvor tilsvarende elementer fra input iterable er parret sammen som tupler. Når du bruger zip() med ordbøger, parrer det ordbøgernes nøgler og værdier baseret på deres placering i ordbogen.
Python3
stocks>=> [>'GEEKS'>,>'For'>,>'geeks'>]> prices>=> [>2175>,>1127>,>2750>]> new_dict>=> {stocks: prices>for> stocks,> >prices>in> zip>(stocks, prices)}> print>(new_dict)> |
>
mylivericket
>Produktion
{'GEEKS': 2175, 'For': 1127, 'geeks': 2750}> Python zip() med Tuple
Når det bruges sammen med tupler, zip() fungerer ved at parre elementerne fra tupler baseret på deres positioner. Den resulterende iterable indeholder tuples, hvor den i-te tuple indeholder det i-te element fra hver inputtuple.
Python3
tuple1>=> (>1>,>2>,>3>)> tuple2>=> (>'a'>,>'b'>,>'c'>)> zipped>=> zip>(tuple1, tuple2)> result>=> list>(zipped)> print>(result)> |
>
>
Produktion:
[(1, 'a'), (2, 'b'), (3, 'c')]>
Python zip() med flere iterables
Pythons zip() funktion kan også bruges til at kombinere mere end to iterables. Det kan tage flere iterables som input og returnere en iterable af tuples, hvor hver tuple indeholder elementer fra de tilsvarende positioner af 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)> |
>
>Produktion
[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]>
Lynlåslister af uens størrelse
Zip()-funktionen vil kun iterere over den mindste liste, der er bestået. Hvis der gives lister af forskellig længde, vil den resulterende kombination kun være så lang, som den mindste liste bestået. I følgende kodeeksempel:
tilslut database 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)> |
>
>Produktion
Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34)> Udpakning ved hjælp af zip()
Udpakning betyder at konvertere de zippede værdier tilbage til det individuelle selv, som de var. Dette gøres ved hjælp af * 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)> |
instruktør Karan Johar
>
>
Produktion
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)> Brug af zip() med Python Loops
Der er mange mulige applikationer, der kan siges at blive udført ved hjælp af zip, det være sig elevdatabase eller scorekort eller ethvert andet hjælpeprogram, der kræver kortlægning af grupper. Et lille eksempel på et scorecard 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))> |
>
>Produktion
Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43>