logo

zip() in Python

Python zip()-methode neemt iterabele containers en retourneert een enkel iteratorobject, waarbij waarden uit alle containers in kaart zijn gebracht.

Python zip()-syntaxis

Het is gewend breng de vergelijkbare index van meerdere containers in kaart, zodat ze met slechts één entiteit kunnen worden gebruikt.



Syntaxis: zip(*iteratoren)

Parameters: Python-iterables of containers (lijst, string enz.)
Winstwaarde : Retourneert een enkel iteratorobject.

zip() in Python-voorbeelden

Python zip() met lijsten

In Python , wordt de functie zip() gebruikt om twee of meer te combineren lijsten (of andere iterabelen) tot één iterabel, waarbij elementen uit overeenkomstige posities aan elkaar worden gekoppeld. De resulterende iterabele bevat tupels , waarbij het eerste element uit elke lijst aan elkaar is gekoppeld, het tweede element uit elke lijst aan elkaar is gekoppeld, enzovoort.



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

>

>

Uitvoer

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

Python zip() met opsomming

De combinatie van zip() en opsommen() is handig in scenario's waarin u meerdere lijsten of tupels parallel wilt verwerken, en ook toegang tot hun indices nodig hebt voor een specifiek doel.

Python3




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

>

>

Uitvoer

0 Mukesh 24 1 Roni 50 2 Chari 18>

Python zip() met woordenboek

De functie zip() in Python wordt gebruikt om twee of meer iterabele bestanden te combineren woordenboeken in een enkele iterabele, waarbij overeenkomstige elementen uit de invoer-iterabele aan elkaar worden gekoppeld als tupels. Wanneer zip() met woordenboeken wordt gebruikt, worden de sleutels en waarden van de woordenboeken aan elkaar gekoppeld op basis van hun positie in het woordenboek.

Python3




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

>

>

Uitvoer

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

Python zip() met Tuple

Bij gebruik met tupels, zip() werkt door de elementen uit tupels te koppelen op basis van hun posities. De resulterende iterabele bevat tupels waarbij de i-de tupel het i-de element van elke invoertupel bevat.

Python3




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

>

>

Uitgang:

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

Python zip() met meerdere iterables

De zip()-functie van Python kan ook worden gebruikt om meer dan twee iterabelen te combineren. Het kan meerdere iterabelen als invoer gebruiken en een iterabel van tupels retourneren, waarbij elke tupel elementen bevat van de overeenkomstige posities van de invoeriterabelen.

Python3




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

>

hoe het script in Linux uit te voeren

>

Uitvoer

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

Lijsten van ongelijke grootte zippen

De functie zip() herhaalt alleen de kleinste doorgegeven lijst. Als er lijsten met verschillende lengtes worden gegeven, zal de resulterende combinatie slechts zo lang zijn als de kleinste lijst is geslaagd. In het volgende codevoorbeeld:

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

>

>

Uitvoer

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

Uitpakken met behulp van zip()

Uitpakken betekent het omzetten van de gecomprimeerde waarden terug naar het individuele zelf zoals ze waren. Dit gebeurt met behulp van * exploitant.

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

>

>

Uitvoer

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() gebruiken met Python Loops

Er zijn veel mogelijke toepassingen waarvan kan worden gezegd dat ze met behulp van zip kunnen worden uitgevoerd, zij het studentendatabase of scorekaart of een ander hulpprogramma dat het in kaart brengen van groepen vereist. Hieronder ziet u een klein voorbeeld van een scorekaart.

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

>

>

Uitvoer

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