Kuidas Zip -funktsiooni Pythonis kasutada

How Use Zip Function Python



See artikkel hõlmab Pythoni standardmooduliteegis saadaval oleva zip -funktsiooni juhendit. See meetod võimaldab teil kombineerida ja siduda mitme iterate objekti elemente. Seejärel saate nende paaride jaoks täiendavat loogikat käivitada. Paljudel juhtudel on zip -funktsiooni kasutamine palju tõhusam ja puhtam kui mitme, silmuste jaoks pesastatud funktsiooni kasutamine.

Zip -funktsiooni kohta

Nagu varem öeldud, kasutatakse zip -funktsiooni paaride loomiseks mitme itereeritava objekti elementidest. Kaaluge allolevat näidet, et mõista zip -funktsiooni põhisüntaksit ja kasutamist:







nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass']
tõmblukuga= tõmblukk(nimekiri 1,nimekiri2)
printida (nimekirja(tõmblukuga))

Ülaltoodud koodinäidise kaks esimest lauset määratlevad kaks loendit, mis sisaldavad mõningaid elemente. Järgmisena kasutatakse zip -funktsiooni, edastades argumentidena loendi1 ja loendi2 muutujad. See on zip -funktsiooni peamine süntaks. Peate lihtsalt esitama loendeid või muid kehtivaid järjestatud korduvaid argumente, mille elemente soovite kombineerida. Lõpuks kasutatakse printimislauset, et saada pakitud muutuja väljund. Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:



[('a', 'õun'), ('b', 'pall'), ('c', 'kass')]

Pange tähele, et zip -funktsioon tagastab zip -tüüpi objekti, mitte loendi. Peate selle teisendatavaks tüübiks teisendama, nagu on näidatud ülaltoodud printimisavalduses.



Lihtsamalt öeldes korjab zip -funktsioon sama indeksi elemendid kahest loendist ja ühendab need paarina paaris. Niisiis kombineeritakse loendi1 0. element loendi2 0. elemendiga, loendi 1 esimene element on ühendatud loendi2 esimese elemendiga ja nii edasi. Funktsioon Zip liigub vasakult paremale ja paaris elemente sisaldaval tüübil on sama indeks kui nendesse salvestatud elementidel.





Zip -i kasutamine, kui muudetavatel pole sama palju elemente

Ülaltoodud näites on mõlemas loendis võrdne arv elemente. Kui tegelete mõne koodiga, kus mõlemas loendis pole sama arvu elemente, peatub zip -funktsioon loendi viimasel elemendil, millel on kõige vähem elemente.

Allolevas näites peatub zip -funktsioon c -elemendil, olenemata sellest, kas loendis2 on veel üks element.



nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass', 'nukk']
tõmblukuga= tõmblukk(nimekiri 1,nimekiri2)
printida (nimekirja(tõmblukuga))

Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

[('a', 'õun'), ('b', 'pall'), ('c', 'kass')]

Zip -funktsiooni kasutamisel saate kasutada rohkem kui kahte iteraali

Tavaliselt kasutatakse zip -funktsiooni kahe korduva objekti võrdlemiseks. Siiski saate zip -funktsioonile argumentidena edastada suvalise arvu korduvaid asju. Põhimõte peatada lühima nimekirja viimases elemendis jääb kehtima.

nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass', 'nukk']
nimekiri3= ['5', '3']
tõmblukuga= tõmblukk(nimekiri 1,nimekiri2,nimekiri3)
printida (nimekirja(tõmblukuga))

Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

[('a', 'õun', '5'), ('b', 'pall', '3']]

Individuaalsete loendite loomine Zip tüüpi objektist

Kui teil on juba zip -objekt, saate seda kasutada üksikute loendite uuesti täitmiseks, mida varem kasutati zip -funktsiooni esmakordsel kasutamisel.

nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass', 'nukk']
nimekiri3= ['5', '3']
tõmblukuga= tõmblukk(nimekiri 1,nimekiri2,nimekiri3)
l1,l2,l3= tõmblukk(*lukuga)
printida (nimekirja(l1), nimekirja(l2), nimekirja(l3))

Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

['a', 'b'] ['õun', 'pall'] ['5', '3']

Ülaltoodud koodinäidises tühjendatakse zip -objekt operaatori * abil. Tühjendatud tulemused sisestatakse seejärel teisele zip -funktsioonile, mis loob algsed loendid. Pange tähele, et kui zip -objekti esmakordsel loomisel kasutati ebavõrdse pikkusega loendeid, ei pruugi te kõiki elemente algsesse loendisse tagasi saada.

Zip -i kasutamine, kui soovite hoida elemente pikimast kordumatust

Ülaltoodud mitmetes näidetes olete võib -olla täheldanud, et zip -funktsioon peatub vaikimisi kõige lühema kordatava viimase elemendi juures. Mis siis, kui soovite, et see jätkaks iteratsiooni, kuni see jõuab pikima korduvuse viimase elemendini?

Sellisel juhul peate kasutama Pythoni itertoolsi mooduli meetodit zip_longest (). See töötab samamoodi nagu zip -funktsioon, vaid ühe väikese erinevusega, et see peatub pikima korduva tüübi viimase elemendi juures.

alates tööriistad importzip_longest
nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass', 'nukk']
nimekiri3= ['5', '3']
tõmblukuga=zip_longest(nimekiri 1,nimekiri2,nimekiri3)
printida (nimekirja(tõmblukuga))

Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

[('a', 'õun', '5'), ('b', 'pall', '3'), ('c', 'kass', pole), (puudub, 'nukk', pole) ]

Puuduvad väärtused täidetakse objektidena None. Samuti saate täita oma väärtuse, edastades täiendava täitmisväärtuse argumendi zip_longest meetodile.

alates tööriistad importzip_longest
nimekiri 1= ['', 'b', 'c']
nimekiri2= ['õun', 'pall', 'kass', 'nukk']
nimekiri3= ['5', '3']
tõmblukuga=zip_longest(nimekiri 1,nimekiri2,nimekiri3,täitmisväärtus='minu_väärtus')
printida (nimekirja(tõmblukuga))

Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

[('a', 'õun', '5'), ('b', 'pall', '3'), ('c', 'kass', 'minu_väärtus'), ('minu_väärtus', 'nukk ',' minu_väärtus ')]

Järeldus

Zip -funktsiooni saab jäljendada, kasutades mõningaid silmuseid ja tingimusi. Siiski aitab see koodi korrastatuna ja puhtamana hoida, eemaldades tarbetud paljusõnalisuse ja korduvad avaldused.