„Python“

Kaip naudoti „ZIP“ funkciją „Python“

Kaip naudoti „ZIP“ funkciją „Python“
Šis straipsnis apims „zip“ funkcijos vadovą, kurį galite rasti „Python“ standartinėje modulių bibliotekoje. Šis metodas leidžia sujungti ir susieti kelių kartojamų objektų elementus. Tada galite paleisti tolesnę logiką šiose porose. Daugeliu atvejų „zip“ funkcijos naudojimas yra daug efektyvesnis ir švaresnis, nei naudojant kelias, įdėtas „for“ kilpas.

Apie „Zip“ funkciją

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

sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė"]
zip = zip (sąrašas1, sąrašas2)
spausdinti (sąrašas (užsegamas))

Pirmieji du minėto kodo pavyzdžio teiginiai apibrėžia du sąrašus, kuriuose yra keletas elementų. Tada „zip“ funkcija naudojama perduodant „list1“ ir „list2“ kintamuosius kaip argumentus. Tai yra pagrindinė „zip“ funkcijos sintaksė. Jūs tiesiog turite perduoti sąrašus ar kitas galiojančias užsakytas iteracijas kaip argumentus, kurių elementus norite sujungti. Galiausiai spausdinimo ataskaita naudojama norint gauti „zip“ kintamojo išvestį. Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

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

Atminkite, kad funkcija „zip“ pateikia „zip“ tipo objektą, o ne sąrašą. Turite jį konvertuoti į kartojamą tipą, kaip parodyta aukščiau pateiktame spausdinimo pareiškime.

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

„Zip“ naudojimas, kai „Iterables“ neturi to paties elementų skaičiaus

Aukščiau pateiktame pavyzdyje abiejuose sąrašuose yra vienodas elementų skaičius. Jei turite reikalų su kodu, kuriame abiejuose sąrašuose nėra vienodo elementų skaičiaus, funkcija „zip“ sustos ties paskutiniuoju sąrašo elementu, kuriame yra mažiausias elementų skaičius.

Toliau pateiktame pavyzdyje „zip“ funkcija sustos ties „c“ elementu, neatsižvelgiant į tai, kad „list2“ turi dar vieną elementą.

sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė", "lėlė"]
zip = zip (sąrašas1, sąrašas2)
spausdinti (sąrašas (užsegamas))

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti šį išvestį:

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

Naudodami „Zip“ funkciją galite naudoti daugiau nei du kartojamus elementus

Paprastai „zip“ funkcija naudojama norint palyginti du kartojamus objektus. Tačiau „zip“ funkcijai galite perduoti bet kokį pakartojimų skaičių kaip argumentus. Sustojimo ties paskutiniu trumpiausio sąrašo elementu principas vis tiek bus taikomas.

sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė", "lėlė"]
sąrašas3 = ["5", "3"]
zip = zip (sąrašas1, sąrašas2, sąrašas3)
spausdinti (sąrašas (užsegamas))

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti tokį išvestį:

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

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

Jei jau turite „zip“ objektą, galite jį naudoti norėdami pakartotinai užpildyti atskirus sąrašus, kurie anksčiau buvo naudojami, kai pirmą kartą buvo iškviesta ZIP funkcija.

sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė", "lėlė"]
sąrašas3 = ["5", "3"]
zip = zip (sąrašas1, sąrašas2, sąrašas3)
l1, l2, l3 = užtrauktukas (* užsegamas)
spausdinti (sąrašas (l1), sąrašas (l2), sąrašas (l3))

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti tokį išvestį:

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

Aukščiau pateiktame kodo pavyzdyje „zip“ objektas ištuštinamas naudojant operatorių „*“. Tada ištuštinti rezultatai perkeliami į kitą „ZIP to Zip“ funkciją, kuria originalius sąrašus. Atminkite, kad visų elementų galite negrąžinti į pradinius sąrašus, jei pirmą kartą kuriant objektą „zip“ buvo naudojami nevienodo ilgio sąrašai.

„Zip“ naudojimas, kai norite išsaugoti ilgiausiai kartojamus elementus

Keliuose aukščiau pateiktuose pavyzdžiuose galbūt pastebėjote, kad „zip“ funkcija pagal nutylėjimą sustoja ties paskutiniu trumpiausio kartojamo elemento elementu. Ką daryti, jei norite, kad jis kartotųsi tol, kol pasieks paskutinį ilgiausiai kartojamą elementą?

Tokiu atveju turėsite naudoti „zip_longest ()“ metodą iš „Python“ „itertools“ modulio. Jis veikia taip pat, kaip ir „zip“ funkcija, turėdamas vieną nedidelį skirtumą, kuris sustoja ties paskutiniu ilgiausiai kartojamo tipo elementu.

iš itertoolių importuoti zip_longest
sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė", "lėlė"]
sąrašas3 = ["5", "3"]
zip = zip_longest (sąrašas1, sąrašas2, sąrašas3)
spausdinti (sąrašas (užsegamas))

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti tokį išvestį:

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

Trūkstamos vertės pateikiamos kaip „Nėra“ tipo objektai. Taip pat galite pateikti savo vertę užpildyti perduodami papildomą argumentą „fillvalue“ metodui „zip_longest“.

iš itertoolių importuoti zip_longest
sąrašas1 = ["a", "b", "c"]
list2 = ["obuolys", "kamuolys", "katė", "lėlė"]
sąrašas3 = ["5", "3"]
zipped = zip_longest (sąrašas1, sąrašas2, sąrašas3, užpildymo reikšmė = "mano_vertė")
spausdinti (sąrašas (užsegamas))

Paleidus pirmiau minėtą kodo pavyzdį, turėtumėte gauti tokį išvestį:

[('a', 'obuolys', '5'), ('b', 'kamuolys', '3'), ('c', 'katė', 'mano_versija'), ('mano_vertė', 'lėlė ',' my_value ')]

Išvada

Zip funkcija gali būti imituojama naudojant kai kurias kilpų ir sąlygų sakinius. Tačiau tai padeda išlaikyti kodą tvarkingesnį ir švaresnį, nes pašalina nereikalingą daugiažodiškumą ir pasikartojančius teiginius.

Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...