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>