Pravočasna uporaba razumevanja seznama v Pythonu vam lahko olajša iterativne postopke s seznami. Poleg tega, da je ena sama vrstica, je bolj berljiva in se izvaja bolj učinkovito.

Vendar se boste morda dotaknili, če ne veste, kako ga uporabiti. Še bolj moteče je, če ne veste, kje ga uporabiti v svoji kodi. Tukaj vam bomo pokazali, kako uporabljati razumevanje seznamov v Pythonu, z nekaj resničnimi primeri.

Kaj je razumevanje seznamov v Pythonu in kako deluje?

Ustvarjanje seznama elementov s Pythonom je enostavno. Naloga pa lahko postane nekoliko dolgočasna, ko morate iz matematičnih operacij ali nizov ustvariti seznam vrednosti ali elementov. Takrat lahko uporaba razumevanja seznama pride prav.

Prednost uporabe razumevanja seznama je, da lahko na enem seznamu izvedete več operacij.

V nasprotju s tem ustvari nove elemente in jih doda na prazen seznam, ki ga samodejno prijavi. Namesto da bi prazen seznam naredili ročno in mu ga dodali z za zanka, razumevanje seznama Pythona vam omogoča, da to storite samodejno, ne da bi se mučili, kako pride do novega seznama.

instagram viewer

Izraz "razumevanje seznama" izhaja iz dejstva, da so vse operacije na Pythonovem seznamu, ki je dodeljen imenovani spremenljivki. Kot smo že omenili, vam omogoča izvajanje določenih operacij v eni vrstici kode. Nato doda izhod na nov seznam.

Na koncu lahko izhodne podatke o razumevanju seznama uporabite tudi za druge namene. To je zato, ker izraze zloži v ločene spremenljivke. Tako se lahko pozneje sklicujete nanje.

Na primer, morda ste strganje spletne strani z BeautifulSoup. Predpostavimo, da nameravate na spletnem mestu dobiti ime vseh izdelkov in njihove cene.

Nato se odločite, da strgane podatke shranite v datoteko CSV ali Excel. Idealna praksa je, da pobrišete ime vseh izdelkov in njihove cene ter jih postavite v ločene stolpce. Vendar uporaba razumevanja seznama v tem primeru zagotavlja, da imate strgane podatke v namenskih spremenljivkah. Nato lahko takšne spremenljivke pozneje pretvorite v Python DataFrame.

Oglejte si spodnji primer:

Izdelki = [i.text za i v bs.find_all ('imenske oznake')]
Cena = [i.text za i v bs.find_all ('cenovne oznake')]

Ko dobite zankaste spremenljivke, jih lahko nato z uporabo Pythonovih Pand postavite v ločene stolpce v DataFrame.

Kako ustvariti in uporabiti razumevanje seznama v Pythonu

The za zanka je bistveni iterator pri razumevanju seznama. Na splošno razumevanje seznama v Pythonu zavzame naslednjo obliko:

ComprehensionVariable = [izraz za elemente na seznamu]

Tiskanje Razumevanje Spremenljivo izpiše rezultat zgornje kode kot seznam.

Vendar pazite, da ne boste zamenjali razumevanja seznama z odprtim za zanko.

Na primer uporabite zanko open for da dobite seznam vseh večkratnikov treh med 1 in 30:

moj seznam = []
za i v območju (1, 11):
myList.append (i * 3)
natisni (myList)
Izhod: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Za primerjavo obeh naredimo isto z razumevanjem seznama:

multiplesOf3 = [i * 3 za i v območju (1, 11)]
tiskanje (multiplesOf3)
Izhod = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Razumevanje seznama lahko uporabite tudi s pogojnimi stavki. Spodnja primer kode natisne vsa neparna števila med 1 in 10:

oddNumbers = [i za i v obsegu (1, 11), če ne i% 2 == 2]
natisni (neparne številke)
Izhod = [1, 3, 5, 7, 9]

Zdaj pa napišimo tudi zgornjo kodo z uporabo odprtega za zanka:

moj seznam = []
za i v območju (1, 11):
če ne, i% 2 == 0:
myList.append (i)
natisni (myList)
Izhod: [1, 3, 5, 7, 9]

Sorodno: Kako dodati seznam v Python

Razumevanje seznama sprejme tudi ugnezdene stavke if:

oddNumbers = [i za i v obsegu (1, 11), če ne i% 2 == 0, če je i <4]
natisni (neparne številke)
Izhod: [1, 3]

Potrebno je tudi ugnezdeno za zanka:

someNums = [[i * 2 za i v obsegu (1, 3)] za _ v obsegu (4)]
tiskanje (nekajštevilk)

Lahko imate tudi navaden ugnezdek za zanka pri razumevanju seznama:

someNums = [i * 2 za i v območju (1, 3) za k v območju (4)]

Z nizi lahko manipulirate tudi z razumevanjem seznama Python. Oglejmo si razumevanje števca besed spodaj:

word = ["To je vadnica za razumevanje seznama python"]
wordCounter = [i.count ('') + 1 za i v besedi]
tiskanje (wordCounter)
Izhod: 7

Razumevanje seznama lahko sprejme tudi funkcijo, ki izvaja določeno operacijo. Vstavimo funkcijo množitelja, ki v razumevanje seznama dobi sodo število, da vidimo, kako to deluje:

Številke = [4, 7, 8, 15, 17, 10]
pomnoževalnik def (n):
večkratnik = n * 2
vrni večkratnik
multipleEven = [množitelj (i) za i v številkah, če i% 2 == 0]
tiskanje (multipleEven)
Izhod: [8, 16, 20]

Zgornjo kodo lahko še vedno napišete v eno samo funkcijo, ne da bi uporabljali razumevanje. Toda razumevanje seznama je koristno, če morate izvesti več ponovitev in vsako od njih postaviti v ločene spremenljivke.

Na primer, lahko izvedete drugo operacijo n in imajo zanj namensko spremenljivko. Spremenimo zgornje razumevanje, da iz neparnih ustvarimo sodo število:

multipleEvenFromOdds = [množitelj (i) za i v številkah, če ne i% 2 == 0]
tiskanje (multipleEvenFromOdds)
Izhod: [14, 30, 34]

Slovar in nastavitev razumevanja

Python poleg razumevanja seznama ponuja tudi slovar in nabor funkcij za razumevanje.

Oglejte si spodnji primer razumevanja slovarja, da vidite, kako deluje:

ustreza = {i: i * 2 za i v obsegu (10), če ne i% 2 == 0}
natisni (popravek)
Izhod: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Zgornja koda pregleduje seznam številk med 1 in 9 in jih naredi ključe. Nato Pythonu pove, naj vsako tipko pomnoži z dvema. Na koncu rezultate te operacije predstavi kot ustrezne vrednosti za vsak ključ v nastali matriki.

Sorodno: Kako delujejo nizi in seznami v Pythonu

Razumevanje nabora je nekoliko podobno razumevanju seznama. Tu je primer razumevanja nabora:

številke = {i ** (2) za i v obsegu (10), če i% 4 == 0}
tisk (številke)
Izhod: {0, 16, 64}

Vendar pa za razliko od razumevanja seznama nabor za razumevanje odstrani dvojnike:

nums = {i za i v obsegu (20), če je i% 2 == 1 za k v območju (10), če je k% 2 == 1}
tiskanje (številke)
Izhod: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Zgornjo kodo lahko preizkusite z razumevanjem seznama, da vidite, kako se razlikujejo.

Ali lahko vsakič uporabite razumevanje seznama?

Ogledali smo si različne primere razumevanja seznamov in kje jih lahko uporabite. Vendar je, tako kot katera koli druga metoda Python, tudi primer razumevanja seznama odvisen od specifičnega problema, ki ga želite rešiti. Zato ga uporabite le, če je idealen za določeno težavo, ki jo želite rešiti.

Eden od namenov razumevanja seznama je poenostaviti kodo in jo narediti bolj berljivo. Zato se izogibajte zapletenosti, ko se ukvarjate s tem. Na primer, dolgo razumevanje Pythona lahko postane zapleteno za branje. To premaga njegov namen.

E-naslov
Kako uporabljati razumevanje seznamov Python (in kdaj jih ne uporabljati)

Tukaj je vse, kar morate vedeti o uporabi te neverjetne funkcije Pythona, ki bo čez noč povečala vašo produktivnost in berljivost kode.

Sorodne teme
  • Programiranje
  • Python
O avtorju
Idowu Omisola (55 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigra s kodiranjem in preklopi na šahovnico, ko mu je dolgčas, a se občasno rad tudi odmakne od rutine. Njegova strast do tega, da ljudem kaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.