Piton

Popis razumijevanja u Pythonu

Popis razumijevanja u Pythonu
Razumijevanje popisa često se koristi u Pythonu za pisanje jednorednih izraza koji stvaraju novi popis ili rječnik prevlačenjem preko iterabilnog objekta. Ovaj će članak objasniti kako koristiti razumijevanja popisa u Pythonu, počevši od osnovnog objašnjenja kako petlje rade u Pythonu.

Za petlju u Pythonu

Izjava for petlje u Pythonu sekvencijalno prevlači članove bilo kojeg objekta, popisa, niza itd. U usporedbi s drugim programskim jezicima, njegova je sintaksa puno čišća i ne zahtijeva ručno definiranje koraka iteracije i pokretanje iteracije. Iako postoje načini da njegovo ponašanje bude jednako kao i ostali programski jezici (neće biti obrađeni u ovom članku). Također možete izvršiti određenu kontrolu nad petljama koristeći izraze poput continue, break, pass itd. Ispod je jednostavan primjer for petlje u Pythonu:

za x u rasponu (10):
ispis (x)

Gornja petlja for ispisat će deset brojeva koji počinju od 0 i završavaju na 9.

Popis razumijevanja

Razumijevanje popisa nije ništa drugo nego stenografski / jezgrovit način za pisanje višerednih linija za petlje u jednolinijskoj izjavi. Primjer razumijevanja popisa u nastavku stvorit će novi popis kao [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] tako što će u njega uključiti sve vrijednosti "x".

brojevi = [x za x u rasponu (10)]
ispis (brojevi)

Imajte na umu da razumijevanje popisa uvijek stvara novi popis i ne mijenja izvorne iterable koji se koriste u izrazu. Tipični izraz za razumijevanje popisa mora imati klauzulu "za" i može se slijediti uvjetnim izjavama "ako" i "ostalo". Bez korištenja razumijevanja popisa, gornji primjer bit će napisan na sljedeći način:

brojevi = []
za x u rasponu (10):
brojevi.dodati (x)
ispis (brojevi)

Izvedba i čitljivost

Razumijevanje popisa brže je nego za petlje. Međutim, ako ne ponovite stotine tisuća stavki, nećete primijetiti značajna poboljšanja performansi. Iako razumijevanje popisa pruža sažet način zapisivanja petlji, složeni izrazi mogu dovesti do loše čitljivosti koda i povećane opširnosti. Važno je držati kôd čitljivim, osim ako postizanje maksimalnih performansi nije apsolutna potreba vašeg programa.

Primjer: Korištenje sintakse razumijevanja popisa s rječnicima i skupovima

Python rječnik je zbirka elemenata definiranih u parovima ključ / vrijednost, dok je skup zbirka jedinstvenih vrijednosti u kojima duplikati nisu dopušteni. Razumijevanje popisa može se koristiti i s Python rječnicima i skupovima. Sintaksa se malo razlikuje, umjesto da izraz zamotate u četvrtaste zagrade, sada ćete morati koristiti vitičaste zagrade. Dobit ćete i novi rječnik / skup objekata umjesto novog popisa.

podaci = "city": "new york", "name": "john doe"
formatted_data = k: v.naslov () za k, v u podacima.stavke ()
ispis (formatirani_podaci)

Gornji primjer pretvorit će vrijednosti niza u velika slova i stvoriti novi rječnik pod nazivom "formatted_data", čiji će izlaz biti: 'city': 'New York', 'name': 'John Doe'. Također možete promijeniti rječnik / postaviti na mjestu tako što ćete na lijevoj strani odrediti postojeću varijablu rječnika.

podaci = "city": "new york", "name": "john doe"
podaci = k: v.naslov () za k, v u podacima.stavke ()
ispis (podaci)

Bez korištenja rječnika, kod bi izgledao ovako:

podaci = "city": "new york", "name": "john doe"
formatted_data =
za k, v u podacima.stavke ():
formatted_data [k] = v.titula()
ispis (formatirani_podaci)

Kako u parovima ne postoje parovi ključ / vrijednost, razumijevanje skupa može se definirati na isti način kao razumijevanje popisa. Razlika je samo u upotrebi kovrčavih zagrada.

Primjer: Višestruko za petlje u razumijevanju popisa

Gore spomenuti primjer razumijevanja popisa je osnovni i koristi jednu izjavu "za". Ispod je primjer koji koristi višestruko za petlje i uvjetni izraz "ako".

pridjevi = ["Disco", "Eoan", "Focal", "Artful"]
životinje = ["Dingo", "Hermelin", "Fossa", "Beaver"]
kodna imena = [x + "" + y za x u pridjevima za y u životinja ako je y.započinje s (x [0])]
ispis (kodna imena)

Kôd će prikazati ['Disco Dingo', 'Eoan Hermine', 'Focal Fossa'] kao izlaz. Dvije for petlje prelaze preko popisa "pridjeva" i "životinja" i njihovi se članovi spajaju pomoću razmaka, samo ako su prvo slovo obje riječi iste. Bez upotrebe razumijevanja popisa, kôd bi izgledao ovako:

pridjevi = ["Disco", "Eoan", "Focal", "Artful"]
životinje = ["Dingo", "Hermelin", "Fossa", "Beaver"]
kodna imena = []
za x u pridjevima:
za y kod životinja:
ako y.započinje s (x [0]):
kodna imena.dodati (x + "" + y)
ispis (kodna imena)

Primjer: Navedite razumijevanje s klauzulom if-else

Primjer u nastavku prikazat će upotrebu izjava if i else u razumijevanju popisa.

popis_brojeva = [1, 2, 3, 4]
drugi_popis = [5, 6, 7, 8]
rezultat = [Tačno ako (x + y)% 2 == 0 else Netačno za x na popisu_brojeva za y na drugom_popisu]
ispis (rezultat)

Prelistavajući dva popisa, gornje razumijevanje popisa provjerava je li zbroj para elemenata paran ili nije. Pokretanje gornjeg koda prikazat će vam [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] kao izlaz. Bez korištenja razumijevanja popisa, kôd bi izgledao ovako:

popis_brojeva = [1, 2, 3, 4]
drugi_popis = [5, 6, 7, 8]
rezultat = []
za x na popisu_brojeva:
za y na drugom_popisu:
ako je (x + y)% 2 == 0:
proizlaziti.dodati (Tačno)
drugo:
proizlaziti.dodati (netočno)
ispis (rezultat)

Zaključak

Poimanja popisa pružaju lijep način za pisanje čistih i sažetih izjava petlje. Međutim, brzo mogu postati složeni i teško razumljivi ako se koriste višestruke petlje i uvjetni izrazi. Na kraju dolazi do razine udobnosti programera, ali općenito je dobra ideja napisati eksplicitan, čitljiv i jednostavan za otklanjanje pogrešaka kôd, umjesto da pretjerano koristite kratice.

Kontrolirajte i upravljajte kretanjem miša između više monitora u sustavu Windows 10
Dvostruki zaslon upravitelja miša omogućuje vam kontrolu i konfiguriranje kretanja miša između više monitora, usporavajući njegovo kretanje blizu gran...
WinMouse vam omogućuje prilagodbu i poboljšanje kretanja pokazivača miša na Windows računalu
Ako želite poboljšati zadane funkcije pokazivača miša, upotrijebite besplatni program WinMouse. Dodaje više značajki koje će vam pomoći da na najbolji...
Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...