Ste se kdaj vprašali, kako lahko vzamemo po en element z dveh različnih seznamov, jih sestavimo v paru in jih postavimo na nov seznam? No, ta koncept je poleg tega, da je zanimiv, zelo koristen na mnogih področjih specializacije. Uvedimo funkcijo zip v Pythonu v naslednjem vrstnem redu:
Zip funkcija v Pythonu
zip () funkcija je vgrajena funkcija in zavzame poljubno število ponovitev in vrne seznam nabora. I-ti element tuple je ustvarjen z uporabo i-tega elementa iz vsakega od ponovljivih elementov.
list_A = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) print zl
Izhod:
[(1, „a“), (2, „b“), (3, „c“), (4, „d“)]
Zip v Pythonu 3
V Pythonu 3, ko izvedemo zgornjo kodo, ne bomo dobili enakega rezultata. Namesto tega bomo dobili:
kaj je pojo spomladi
Poskusi!
To je zato, ker metode zip namesto seznama vrnejo zip objekt. Ta zip objekt je iterator. Z drugimi besedami, vrne en predmet iteratorja, ki je preslikal vrednosti iz vseh vsebnikov. Torej, da dobimo vrednosti, pretvorimo zl (iz zgornje kode) v seznam, nastavitev ali kar koli drugega.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl)
Izhod:
[(1, „a“), (2, „b“), (3, „c“), (4, „d“)]
Razpakiranje v Pythonu
Razpakiranje pomeni pretvorbo stisnjenih vrednosti nazaj v posameznika, kakršne so bile. To se naredi s pomočjo operaterja *. Torej, če želimo stare vrednosti vstaviti v seznamA in seznamB iz stisnjenega seznama zl, potem moramo razpakirati zl.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] #zip listA in listB in ga daj na en seznam zl zl = zip (seznamA, seznamB) zl = seznam (zl) print (zl) #unzip zl in vrnite vrednosti na seznamA in seznamB seznamA, seznamB = zip (* zl) print (listA) print (listB)
Izhod:
[(1, „a“), (2, „b“), (3, „c“), (4, „d“)]
(1, 2, 3, 4)
(„A“, „b“, „c“, „d“)
Da bi jasno razumeli razliko, vzamemo dve novi spremenljivki in vanjo vstavimo razpakirane podatke.
listA = [1, 2, 3, 4] listB = ['a', 'b', 'c', 'd'] zl = zip (listA, listB) zl = list (zl) print (zl) listC, listD = zip (* zl) print (listC) print (listD) print (listA) print (listB)
Izhod:
[(1, „a“), (2, „b“), (3, „c“), (4, „d“)]
(1, 2, 3, 4, 5)
(„A“, „b“, „c“, „d“, „e“)
[1, 2, 3, 4, 5]
[„A“, „b“, „c“, „d“, „e“]
Kot lahko vidite, sta seznamA in seznamB seznama, seznamC in seznamD pa sta prikazana kot nabora, ki sta prikazana kot rezultat. To je edina manjša razlika.
S tem smo prišli do konca tega članka Zip Function v Pythonu. Upam, da ste se konceptov dobro naučili in zato preizkusite bolj natančno.
Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega bloga 'Zip Function in Python' in v najkrajšem možnem času se vam bomo oglasili.
Če želite poglobljeno znanje Pythona in njegovih različnih aplikacij, lahko z našim spletnim treningom v živo s podporo 24 ur na dan in 7 dni v tednu.