logo

zip() i Python

Python zip() metod tar itererbara behållare och returnerar ett enstaka iteratorobjekt med mappade värden från alla behållare.

Python zip() Syntax

Den är van vid mappa det liknande indexet för flera behållare så att de bara kan användas med en enda enhet.



Syntax : zip(*iteratorer)

Parametrar: Python iterables eller behållare (lista, sträng etc.)
Returvärde : Returnerar ett enstaka iteratorobjekt.

zip() i Python-exempel

Python zip() med listor

I Pytonorm , används zip()-funktionen för att kombinera två eller flera listor (eller andra iterables) till en enda iterabel, där element från motsvarande positioner paras ihop. Den resulterande iterable innehåller tupler , där det första elementet från varje lista är ihopparat, det andra elementet från varje lista är ihopparat, och så vidare.



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 av zip() och räkna upp() är användbart i scenarier där du vill bearbeta flera listor eller tupler parallellt, och även behöver komma åt deras index för något specifikt ändamål.

Python3




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 Dictionary

Zip()-funktionen i Python används för att kombinera två eller flera iterable ordböcker till en enda iterabel, där motsvarande element från den ingående iterable paras ihop som tupler. När du använder zip() med ordböcker, paras nycklarna och värdena för ordböckerna baserat på deras position 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)>

>

>

Produktion

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

Python zip() med Tuple

När det används med tuplar, blixtlås() fungerar genom att para ihop elementen från tupler baserat på deras positioner. Den resulterande iterablen innehåller tuplar där den i:te tupeln innehåller det i:te elementet från varje inmatningstuppel.

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 flera iterables

Pythons zip()-funktion kan också användas för att kombinera fler än två iterables. Det kan ta flera iterables som indata och returnera en iterabel av tuplar, där varje tupel innehåller element från motsvarande positioner för de inmatade iterablerna.

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

Blixtlåslistor av olika storlek

Zip()-funktionen itererar bara över den minsta lista som passerats. Om listor av olika längd ges, kommer den resulterande kombinationen bara att vara så lång som den minsta listan passerade. I följande kodexempel:

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

Packa upp med zip()

Att packa upp innebär att konvertera de zippade värdena tillbaka till det individuella jaget som de var. Detta görs med hjälp av * operatör.

Python3




js global variabel

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

>

>

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

Använder zip() med Python Loops

Det finns många möjliga applikationer som kan sägas köras med zip, vare sig det är elevdatabas eller styrkort eller något annat verktyg som kräver kartläggning av grupper. Ett litet exempel på ett styrkort visas nedan.

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>