
Edmund Richardson
0
1106
39
Možda ste čuli za razumijevanje Pythonovog popisa. Možda je to čak i nešto što ste koristili bez da stvarno razumijete. Sada je vrijeme za učenje, budući da pokrivamo sve što trebate znati o razumijevanju popisa na Pythonu.
Prije početka, vrijedno je osvježiti se kako nizovi i popisi rade u Python-u. Kako nizovi i popisi rade u Python-u. Kako nizovi i popisi rade u Python nizovima i popisi su neke od najkorisnijih struktura podataka u programiranju - iako ih malo ljudi koristi do njihovog punog potencijala. i kako koristiti Python rječnike Python Dictionary: Kako to možete koristiti za pisanje boljeg Python Rječnika: Kako to možete koristiti za pisanje boljeg koda. Python rječnik mislite na neuredjene skupove parova ključ-vrijednost. U ovom ćemo vam članku predstaviti rad s njima i njihovo korištenje za poboljšanje vašeg Python koda. .
Što je razumijevanje Python liste?
Shvaćanje popisa zvuči složeno, ali stvarno nije. U Python-u je to jednostavan brzi način filtriranja ili pročišćavanja popisa na temelju nekih kriterija.
Štedi vam da morate napisati nekoliko redaka koda (pogotovo ako ste već u petlji) i održava čitljivost vašeg koda urednom..
Međutim, budite oprezni jer razumijevanje popisa nije uvijek odgovor. Lako se zanositi i pisati složena shvaćanja koja je teško pročitati. Ponekad je pisanje više koda bolje, pogotovo ako pomaže čitljivosti. Držite se jednostavnih zadataka i držite kod na jedinstvenoj odgovornosti.
Kako koristiti razumijevanja popisa u Pythonu
Bilješka: Svi ovi primjeri koriste Python 3.6. Ako niste sigurni u razlike između Pythona 3 i Pythona 2, svakako pročitajte naša često postavljana pitanja o Python-u Najčešća pitanja o programiranju Python-a Najčešća pitanja o Python programiranju U ovom ćemo vas članku upoznati. sve što trebate znati o Pythonu kao početniku. , gdje pokrivamo ovo pitanje i još mnogo toga.
Razmislite o ovom bitnom kodu koji kopira niz i svako slovo u tom polju pretvara u veliko slovo. To radi tako što ćete pregledavati svaku stavku u nizu:
slova = ['a', 'b', 'c', 'd'] ispis (slova) upper_letters = [] za slovo u slovima: rezultat = letter.upper () upper_letters.append (rezultat) ispis (upper_letters)
Sada je ista točna logika, osim što se radi u jednom retku koda koristeći osnovno razumijevanje popisa Python:
slova = ['a', 'b', 'c', 'd'] ispis (slova) gornja_letka = [x.upper () za x u slovima] ispis (gornja_letka)
Kao što vidite, rezultat je potpuno isti, ali postupak uključuje znatno više koda bez razumijevanja popisa.
Prekinimo ovaj jednostavan primjer.
Ovaj primjer stvara popis pod nazivom slova. Ovdje se pohranjuju mala slova “”, “b”, “c”, i “d”. Pretpostavimo da želite da svi ti elementi popisa budu velika slova? Pa, bez razumijevanja popisa, morate stvoriti novi popis za spremanje rezultata (nazvanog upper_letters), petlja preko svakog elementa u slova popis, pretvorite svako slovo (i spremite ga u proizlaziti-izborno, ali dobra praksa), a zatim dodajte veliko slovo novom popisu. Kakvo puno posla!
Ovdje je razumijevanje popisa gotovo točno ekvivalentno alternativi petlje. To učinkovito kaže “za svako slovo na popisu slova pretvorite ih u velika slova i rezultat vratite kao novi popis.”
Popis razumijevanja može funkcionirati samo na popisima i mora vratiti novi popis. Kopajmo dublje.
Postoje tri dijela za razumijevanje popisa (treći ćemo dio opisati u nastavku). Shvaćanja popisa moraju započeti i završiti se uglatim zagradama ([ i ]). Ovako je dizajniran, a Python-u daje do znanja da radite s popisom.
Unutar uglatih zagrada morate započeti s rezultatom. Ovo je ono što želite učiniti sa svakim elementom popisa.
U gornjem primjeru, sljedeći kôd pretvara svaki element (na koji se odnosi naziv varijable x) velikim slovom koristeći Gornji() metoda koja je dio jezgre knjižnice Python:
[x.upper () # neće se pokrenuti, u ovom trenutku je samo polovina razumijevanja
Zatim trebate reći Python-u na kojem popisu treba raditi i dodijeliti svakoj pojedinačnoj jedinici varijablu. Ovo je točno isto kao i for petlja u dugomotanom primjeru:
za x u slovima
Svaki put kada petlja pređe popis, vrijednost x će se promijeniti u koji god trenutni element bio. Počet će kao “”, i onda “b”, i tako dalje.
Ako sve to sastavite (dodijelite ga varijabli zvanoj) upper_letters), bit ćete gotovi:
top_letters = [x.upper () za x u slovima]
Sada, upper_letters sadržavat će popis velikih slova, počevši od “”, i onda “B” i tako dalje.
Treći dio razumijevanja popisa u Pythonu
Kao što smo gore spomenuli, postoji treći dio koji će popisati razumijevanje.
Nakon što izvršite dva koraka gore, možete uključiti neobavezni uvjet. To je poput korištenja an ako izjava za reći “napravi mi novi popis na temelju ovog starog popisa, ali uključuje samo elemente koji zadovoljavaju moje kriterije”.
Evo kako to izgleda:
ages = [1, 34, 5, 7, 3, 57, 356] ispis (dob) star_ages = [x za x u dobima ako x> 10] ispis (staro_ages)
Ovaj primjer koristi novi popis pod nazivom dobi. old_ages popis se sastavlja pomoću razumijevanja popisa. ako uvjet na kraju znači da su u novi popis umetnuti samo elementi popisa koji ispunjavaju kriterije. U ovom su primjeru dopuštene sve starije od deset godina.
Kada se ne koriste razumijevanja popisa Python
Shvaćanje popisa nevjerojatno je nakon što ga shvatite, ali nije korisno u svim okolnostima. Vjerojatno ga ne biste trebali koristiti kada trebate više od jednog uvjeta:
old_ages = [x za x u dobima ako su x> 10 i x < 100 and x is not None]
Ovaj kôd djeluje, ali počinje postajati dugačak i zbunjujući. Slično tome, ništa više od jednostavnog poziva funkcije možda neće raditi. U ovom primjeru dobit ćete pogrešku:
slova = ['a', 'b', 'c', 'd', 2] ispis (slova) gornja_letka = [x.upper () za x u slovima] ispis (gornja_letka)
To je savršeno važeći kôd, ali kako ne možete upisati veliko slovo, neće raditi. Ovo je jedan slučaj kada je dulja petlja zapravo poželjnija jer ćete moći raditi s nekim izuzecima:
slova = ['a', 'b', 'c', 'd', 1] ispis (slova) gornja_jezika = [] za slovo slovima: probajte: rezultat = pismo.upper () gornji_letter.append (rezultat) osim AttributeError: pass # ne radi ništa ispisati (gornja_letka)
Počnite stavljati na upotrebu razumijevanja popisa Python
Sada kada znate koliko je lako razumijevanje popisa u Pythonu, nema razloga da ga ne koristite. Sjetite se da to bude jednostavno i uzmite u obzir čitljivost prije svega.
Možda ćete kontrolirati Arduino s Pythonom Kako programirati i kontrolirati Arduino s Pythonom Kako programirati i kontrolirati Arduino s Python-om Nažalost, nemoguće je izravno programirati Arduino na Pythonu, ali možete ga upravljati preko USB-a pomoću Pythona program. Evo kako. ili što je s mrežnom sigurnosnom kamerom DIY Python DIY mrežne sigurnosne kamere za pomicanje i naginjanje s Raspberry Pi-om. Napravite sigurnosnu kameru za naginjanje i naginjanje mreže s Raspberry Pi Saznajte kako napraviti sigurnosnu kameru za gledanje s udaljenosti i naginjanjem pomoću Raspberry Pi. Ovaj se projekt može dovršiti ujutro, uz samo najjednostavnije dijelove. ?