Kaip naudoti „Zip“ funkciją „Python“

How Use Zip Function Python



Šiame straipsnyje bus pateiktas vadovas apie ZIP funkciją, kurią galima rasti „Python“ standartinėje modulių bibliotekoje. Šis metodas leidžia sujungti ir suporuoti kelių pasikartojančių objektų elementus. Tada šiose porose galite paleisti tolesnę logiką. Daugeliu atvejų „zip“ funkcija yra daug efektyvesnė ir švaresnė nei kelių, įdėtų į kilpas, naudojimas.

Apie „Zip“ funkciją

Kaip minėta anksčiau, „zip“ funkcija naudojama poroms kurti iš kelių pasikartojančių objektų elementų. Apsvarstykite toliau pateiktą pavyzdį, kad suprastumėte pagrindinę zip funkcijos sintaksę ir naudojimą:







sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė']
užtrauktuku= užtrauktukas(sąrašas1,sąrašas2)
spausdinti (sąrašą(užtrauktuku))

Pirmieji du teiginiai aukščiau pateiktame kodo pavyzdyje apibrėžia du sąrašus, kuriuose yra tam tikrų elementų. Tada „zip“ funkcija naudojama perduodant sąrašo1 ir sąrašo2 kintamuosius kaip argumentus. Tai yra pagrindinė zip funkcijos sintaksė. Jūs tiesiog turite pateikti sąrašus ar kitus galiojančius užsakytus iterabus kaip argumentus, kurių elementus norite sujungti. Galiausiai spausdinimo teiginys naudojamas norint gauti kintamojo su išvestimi išvestį. Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokią išvestį:



[(„a“, „obuolys“), („b“, „kamuolys“), („c“, „katė“)]

Atminkite, kad funkcija zip grąžina zip tipo objektą, o ne sąrašą. Turite jį konvertuoti į pasikartojantį tipą, kaip parodyta aukščiau esančiame spausdinimo pareiškime.



Paprasčiau tariant, „zip“ funkcija paima to paties indekso elementus iš dviejų sąrašų ir sujungia juos kaip porą. Taigi 0 -asis sąrašo 1 elementas yra derinamas su 0 -uoju sąrašo 2 elementu, 1 -asis sąrašo 1 elementas - 1 -uoju sąrašo 2 elementu ir pan. Funkcija „Zip“ juda iš kairės į dešinę, o rinkinio, kuriame yra suporuoti elementai, indeksas yra toks pat kaip ir juose saugomų elementų.





„Zip“ naudojimas, kai pasikartojantys daiktai neturi vienodo elementų skaičiaus

Pirmiau pateiktame pavyzdyje abu sąrašai turi vienodą elementų skaičių. Jei susiduriate su tam tikru kodu, kuriame abiejuose sąrašuose nėra vienodo elementų skaičiaus, ZIP funkcija sustos paskutiniame sąrašo elemente, kuriame yra mažiausiai elementų.

Žemiau esančiame pavyzdyje zip funkcija sustos ties c elementu, nepriklausomai nuo to, ar sąraše2 yra dar vienas elementas.



sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė', 'lėlė']
užtrauktuku= užtrauktukas(sąrašas1,sąrašas2)
spausdinti (sąrašą(užtrauktuku))

Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokią išvestį:

[(„a“, „obuolys“), („b“, „kamuolys“), („c“, „katė“)]

Naudodami „Zip“ funkciją, galite naudoti daugiau nei du įverčius

Paprastai „zip“ funkcija naudojama dviem pasikartojantiems objektams palyginti. Tačiau zip funkcijai kaip argumentus galite perduoti bet kokį skaičių pakartojamųjų dalykų. Sustojimo ties paskutiniu trumpiausio sąrašo elementu principas ir toliau bus taikomas.

sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė', 'lėlė']
sąrašas3= [„5“, „3“]
užtrauktuku= užtrauktukas(sąrašas1,sąrašas2,sąrašas3)
spausdinti (sąrašą(užtrauktuku))

Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokį rezultatą:

[(„a“, „obuolys“, „5“), („b“, „kamuolys“, „3“)]

Individualių sąrašų kūrimas iš „Zip“ tipo objekto

Jei jau turite „zip“ objektą, galite jį naudoti, kad iš naujo užpildytumėte atskirus sąrašus, kurie anksčiau buvo naudojami, kai pirmą kartą buvo iškviesta „zip“ funkcija.

sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė', 'lėlė']
sąrašas3= [„5“, „3“]
užtrauktuku= užtrauktukas(sąrašas1,sąrašas2,sąrašas3)
l1,l2,l3= užtrauktukas(*užtrauktuku)
spausdinti (sąrašą(l1), sąrašą(l2), sąrašą(l3))

Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokį rezultatą:

['a', 'b'] ['obuolys', 'kamuolys'] ['5', '3']

Aukščiau esančiame kodo pavyzdyje ZIP objektas ištuštinamas naudojant * operatorių. Ištuštinti rezultatai įtraukiami į kitą skambučio į ZIP funkciją, kuri sukuria originalius sąrašus. Atminkite, kad ne visi elementai gali būti grąžinti į pradinius sąrašus, jei pirmą kartą kuriant ZIP failą buvo naudojami nevienodo ilgio sąrašai.

„Zip“ naudojimas, kai norite, kad elementai nebūtų ilgesni

Daugelyje aukščiau pateiktų pavyzdžių galbūt pastebėjote, kad ZIP funkcija pagal numatytuosius nustatymus sustoja ties paskutiniu trumpiausio pakartojamo elemento elementu. Ką daryti, jei norite, kad jis tęstų kartojimą, kol pasieks paskutinį ilgiausio pakartojimo elementą?

Tokiu atveju turėsite naudoti zip_longest () metodą iš „Python“ itertools modulio. Jis veikia taip pat, kaip ir „zip“ funkcija, su vienu nedideliu skirtumu, kad jis sustoja ties paskutiniu ilgiausios kartojamo tipo elementu.

nuo įrankiai importaszip_longest
sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė', 'lėlė']
sąrašas3= [„5“, „3“]
užtrauktuku=zip_longest(sąrašas1,sąrašas2,sąrašas3)
spausdinti (sąrašą(užtrauktuku))

Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokį rezultatą:

[(„a“, „obuolys“, „5“), („b“, „kamuolys“, „3“), („c“, „katė“, nėra), (Nėra, „lėlė“, Nėra) ]

Trūkstamos vertės užpildomos kaip „None“ tipo objektai. Taip pat galite pateikti savo vertę, kurią užpildysite, perduodami papildomą užpildymo vertės argumentą zip_longest metodui.

nuo įrankiai importaszip_longest
sąrašas1= ['iki', „b“, „c“]
sąrašas2= ['obuolys', 'kamuolys', 'katė', 'lėlė']
sąrašas3= [„5“, „3“]
užtrauktuku=zip_longest(sąrašas1,sąrašas2,sąrašas3,užpildymo vertė='my_value')
spausdinti (sąrašą(užtrauktuku))

Paleidę aukščiau paminėtą kodo pavyzdį, turėtumėte gauti tokį rezultatą:

[(„a“, „obuolys“, „5“), („b“, „kamuolys“, „3“), („c“, „katė“, „mano_vertybė“), („mano_vertybė“, „lėlė“ ',' my_value ')]

Išvada

„Zip“ funkciją galima imituoti naudojant kai kurias kilpų ir sąlygų nuostatas. Tačiau tai padeda išlaikyti tvarkingą ir švaresnį kodą pašalinant nereikalingą daugžodžiavimą ir pasikartojančius teiginius.