logo

zip() v Pythonu

Metoda Python zip(). vzame ponovljive vsebnike in vrne en sam objekt iteratorja, ki ima preslikane vrednosti iz vseh vsebnikov.

Sintaksa Python zip().

Navajen je preslikajte podoben indeks več vsebnikov, tako da jih je mogoče uporabiti samo z eno samo entiteto.

Sintaksa: zip(*iteratorji)



Parametri: Iterable Python ali vsebniki (seznam, niz itd.)
Povratna vrednost: Vrne en sam predmet iteratorja.

zip() v primerih Python

Python zip() s seznami

noter Python , se funkcija zip() uporablja za združevanje dveh ali več seznami (ali katere koli druge iterable) v eno samo iterabo, kjer so elementi z ustreznih položajev seznanjeni skupaj. Nastali iterable vsebuje tuples , kjer je prvi element z vsakega seznama seznanjen skupaj, drugi element z vsakega seznama je seznanjen skupaj itd.

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

>

>

Izhod

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

Python zip() z enumerate

Kombinacija zip() in naštej() je uporaben v scenarijih, kjer želite vzporedno obdelati več seznamov ali tulp in morate tudi dostopati do njihovih indeksov za kateri koli poseben namen.

Python3




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

>

>

Izhod

0 Mukesh 24 1 Roni 50 2 Chari 18>

Python zip() s slovarjem

Funkcija zip() v Pythonu se uporablja za združevanje dveh ali več ponavljajočih se slovarji v eno iterabilo, kjer so ustrezni elementi iz vhodne iterable seznanjeni kot tuple. Pri uporabi zip() s slovarji združi ključe in vrednosti slovarjev glede na njihov položaj v slovarju.

Python3




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

>

if in else v bash

>

Izhod

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

Python zip() s Tuple

Ko se uporablja s tulpami, zip() deluje tako, da združuje elemente iz tulp na podlagi njihovih položajev. Nastali iterable vsebuje tuple, kjer i-ta tule vsebuje i-ti element iz vsake vhodne tuple.

Python3




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

>

>

Izhod:

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

Python zip() z več ponovljivimi elementi

Pythonovo funkcijo zip() je mogoče uporabiti tudi za kombiniranje več kot dveh iterablev. Kot vhod lahko vzame več iterabil in vrne iterabilo tork, kjer vsaka tulka vsebuje elemente z ustreznih položajev vhodnih iterabil.

Python3




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

>

>

Izhod

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

Stiskanje seznamov neenake velikosti

Funkcija zip() bo ponovila le najmanjši posredovani seznam. Če so podani seznami različnih dolžin, bo nastala kombinacija dolga le toliko, kot je minil najmanjši seznam. V naslednjem primeru kode:

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

>

>

Izhod

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

Razpakiranje z zip()

Razpakiranje pomeni pretvorbo stisnjenih vrednosti nazaj v posameznika, kakršen je bil. To se naredi s pomočjo * operater.

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

>

>

Izhod

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

Uporaba zip() s Python Loops

Obstaja veliko možnih aplikacij, za katere lahko rečemo, da se izvajajo z zipom baza podatkov študentov ali točkovnik ali kateri koli drug pripomoček, ki zahteva preslikavo skupin. Majhen primer kazalnika je prikazan spodaj.

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

>

java nizi
>

Izhod

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