Pravovremena upotreba razumijevanja popisa u Pythonu može vam olakšati iterativne operacije popisa. Osim što je jedna linija, čitljiviji je i učinkovitije se izvršava.

Međutim, možda ćete se poraditi ako ne znate kako to koristiti. Čak može biti frustrirajuće ako ne znate gdje ga primijeniti u kodu. Ovdje ćemo vam pokazati kako koristiti razumijevanje popisa u Pythonu s nekoliko primjera iz stvarnog života.

Što je razumijevanje popisa u Pythonu i kako to funkcionira?

Stvaranje popisa stavki pomoću Pythona je jednostavno. Međutim, zadatak može postati malo dosadan kada trebate generirati popis vrijednosti ili predmeta iz matematičkih operacija ili operacija niza. Tada upotreba popisa može dobro doći.

Prednost korištenja razumijevanja popisa je ta što možete izvesti nekoliko operacija na jednom popisu.

Suprotno tome, on stvara nove stavke i dodaje ih praznom popisu koji automatski deklarira. Dakle, umjesto da ručno napravite prazan popis i dodate ga s za petlja, razumijevanje Pythonovog popisa omogućuje vam da to učinite automatski, a da se ne mučite oko načina na koji novi popis dolazi.

Pojam "razumijevanje popisa" dolazi iz činjenice da su sve operacije na Python popisu dodijeljenom imenovanoj varijabli. Kao što smo ranije naveli, omogućuje vam izvođenje određenih operacija u jednom retku koda. Zatim dodaje izlaz novom popisu.

U konačnici, izlaz razumijevanja popisa možete koristiti i u druge svrhe. To je zato što slaže izraze u zasebne varijable. Tako se na njih možete pozvati kasnije.

Na primjer, možda jeste struganje web stranice s BeautifulSoup. Pretpostavimo da s web mjesta namjeravate dobiti naziv svih predmeta i njihove cijene.

Zatim odlučite staviti strugane podatke u CSV ili Excel datoteku. Idealna praksa je struganje imena svih predmeta i njihovih cijena te stavljanje oba u posebne stupce. Međutim, korištenje razumijevanja popisa, u tom slučaju, osigurava da imate strugane podatke u namjenskim varijablama. Tada takve varijable možete kasnije pretvoriti u Python DataFrame.

Pogledajte primjer u nastavku:

Proizvodi = [i.text za i u bs.find_all ('oznake imena')]
Cijena = [i.tekst za i u bs.find_all ('oznake s cijenama')]

Nakon što dobijete petlje varijabli, možete ih staviti u zasebne stupce u DataFrameu koristeći Pythonove Pande.

Kako stvoriti i koristiti razumijevanje popisa u Pythonu

The za loop je bitan iterator u razumijevanju popisa. Općenito, razumijevanje popisa u Pythonu ima ovaj format:

ComprehensionVariable = [izraz za stavke na popisu]

Ispis RazumijevanjeVariabilno daje rezultat gornjeg koda kao popis.

Međutim, pripazite da ne pobrkate razumijevanje popisa s otvorenim za petlja.

Na primjer, idemo koristite petlju open for da biste dobili popis svih višekratnika od tri između 1 i 30:

moj popis = []
za i u rasponu (1, 11):
myList.append (i * 3)
ispis (myList)
Izlaz: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Da bismo usporedili to dvoje, učinimo istu stvar koristeći razumijevanje popisa:

multiplesOf3 = [i * 3 za i u rasponu (1, 11)]
ispis (multiplesOf3)
Izlaz = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Razumijevanje popisa možete koristiti i s uvjetnim iskazima. Primjer koda ispod ispisuje sve neparne brojeve između 1 i 10:

neparni brojevi = [i za i u rasponu (1, 11) ako nije i% 2 == 2]
ispis (neparni brojevi)
Izlaz = [1, 3, 5, 7, 9]

Sad, prepišimo i gornji kod koristeći open za petlja:

moj popis = []
za i u rasponu (1, 11):
ako ne, i% 2 == 0:
myList.append (i)
ispis (myList)
Izlaz: [1, 3, 5, 7, 9]

Povezano: Kako dodati popis u Python

Razumijevanje popisa također prihvaća ugniježđene if izjave:

neparni brojevi = [i za i u rasponu (1, 11) ako nije i% 2 == 0 ako je i <4]
ispis (neparni brojevi)
Izlaz: [1, 3]

Potrebno je i ugniježđeno za petlja:

someNums = [[i * 2 za i u rasponu (1, 3)] za _ u rasponu (4)]
ispis (nekiBrojevi)

Možete imati i obično ugniježđeno za petlja u razumijevanju popisa:

someNums = [i * 2 za i u rasponu (1, 3) za k u rasponu (4)]

Sa stringovima možete manipulirati i razumijevanjem popisa Python. Pogledajmo razumijevanje brojača riječi u nastavku:

word = ["Ovo je vodič za razumijevanje popisa python"]
wordCounter = [i.broj ('') + 1 za i u riječi]
ispis (wordCounter)
Izlaz: 7

Razumijevanje popisa također može prihvatiti funkciju koja izvodi određenu operaciju. Umetnimo funkciju množitelja koja dobiva parne brojeve u razumijevanju popisa da vidimo kako to funkcionira:

Brojevi = [4, 7, 8, 15, 17, 10]
def multiplikator (n):
višestruko = n * 2
vratiti višestruko
multipleEven = [množitelj (i) za i u Brojevima ako je i% 2 == 0]
ispis (multipleEven)
Izlaz: [8, 16, 20]

I dalje možete napisati gornji kod u jednu funkciju bez upotrebe razumijevanja. Ali razumijevanje popisa korisno je kada trebate izvesti nekoliko iteracija i svaku od njih smjestiti u zasebne varijable.

Na primjer, možete izvršiti drugu operaciju na n i za to imaju namjensku varijablu. Izmijenimo gornje razumijevanje kako bismo generirali parne brojeve iz neparnih:

multipleEvenFromOdds = [množitelj (i) za i u Brojevima ako nije i% 2 == 0]
ispis (multipleEvenFromOdds)
Izlaz: [14, 30, 34]

Rječnik i postavi razumijevanja

Uz razumijevanje popisa, Python također nudi rječnik i skup funkcija za razumijevanje.

Pogledajte primjer razumijevanja rječnika u nastavku da biste vidjeli kako to funkcionira:

odgovara = {i: i * 2 za i u rasponu (10) ako nije i% 2 == 0}
ispis (ispravak)
Izlaz: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Kod gore pregledava popis brojeva između 1 i 9 i čini ih ključevima. Tada Pythonu govori da svaki ključ pomnoži s dva. Konačno, prikazuje rezultate te operacije kao odgovarajuće vrijednosti za svaki ključ u rezultirajućem nizu.

Povezano: Kako nizovi i popisi rade u Pythonu

Skupljeno razumijevanje pomalo je slično razumijevanju popisa. Evo primjera skupa razumijevanja:

brojevi = {i ** (2) za i u rasponu (10) ako je% 4 == 0}
ispis (brojevi)
Izlaz: {0, 16, 64}

Međutim, za razliku od razumijevanja popisa, skupno razumijevanje uklanja duplikate:

nums = {i za i u rasponu (20) ako je i% 2 == 1 za k u rasponu (10) ako je k% 2 == 1}
ispis (brojevi)
Izlaz: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Možete isprobati gornji kod pomoću razumijevanja popisa kako biste vidjeli kako se razlikuju.

Možete li svaki put koristiti razumijevanje popisa?

Pogledali smo različite primjere razumijevanja popisa i gdje ih možete koristiti. Međutim, kao i bilo koja druga metoda Pythona, slučaj upotrebe razumijevanja popisa ovisi o konkretnom problemu koji želite riješiti. Stoga biste ga trebali koristiti samo ako je idealan za određeni problem koji želite riješiti.

Jedna od svrha razumijevanja popisa je pojednostaviti vaš kôd i učiniti ga čitljivijim. Pazite da izbjegavate složenost kad se bavite time. Na primjer, dugo razumijevanje Pythona može postati složeno za čitanje. To poništava njegovu svrhu.

E-mail
Kako koristiti razumijevanja popisa Python (i kada ih ne koristiti)

Evo svega što trebate znati o korištenju ove nevjerojatne značajke Pythona koja će vam preko noći povećati produktivnost i čitljivost koda.

Povezane teme
  • Programiranje
  • Piton
O autoru
Idowu Omisola (Objavljeno 55 članaka)

Idowu je zaljubljen u sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prebacuje se na šahovsku ploču kad mu je dosadno, ali isto tako voli kad-tad odvojiti se od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.

Više od Idowu Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.