U ovom programu naučit ćete brojati broj svakog samoglasnika u nizu pomoću razumijevanja rječnika i popisa.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja na Pythonu:
- Python za Loop
- Python žice
- String metode
Izvorni kod: Korištenje rječnika
# Program to count the number of each vowels # string of vowels vowels = 'aeiou' ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # make a dictionary with each vowel a key and value 0 count = ().fromkeys(vowels,0) # count the vowels for char in ip_str: if char in count: count(char) += 1 print(count)
Izlaz
('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3)
Ovdje smo uzeli niz pohranjen u ip_str. Korištenjem metode casefold()
činimo je prikladnom za bezrezervne usporedbe. U osnovi, ova metoda vraća verziju niza s malim slovima.
Koristimo metodu rječnika fromkeys()
za izradu novog rječnika sa svakim samoglasnikom kao ključem i svim vrijednostima jednakim 0. To je inicijalizacija brojanja.
Dalje, prelazimo preko ulaznog niza pomoću petlje for.
U svakoj iteraciji provjeravamo je li znak u ključevima rječnika ( True
ako je samoglasnik) i povećavamo vrijednost za 1 ako je true.
Izvorni kod: Korištenje popisa i razumijevanja rječnika
# Using dictionary and list comprehension ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # count the vowels count = (x:sum((1 for char in ip_str if char == x)) for x in 'aeiou') print(count)
Izlaz ovog programa je isti kao gore.
Ovdje smo ugnijezdili razumijevanje popisa unutar razumijevanja rječnika kako bismo prebrojali samoglasnike u jedan redak.
Razumijevanje rječnika pokreće se za sve samoglasnike, a razumijevanje popisa unutar razumijevanja rječnika provjerava podudaraju li se bilo koji znakovi u nizu s tim samoglasnikom.
Na kraju se generira popis s 1 s za broj svakog samoglasničkog znaka. sum()
Metoda se koristi za izračunavanje zbroj elemenata za svaku listu.
Međutim, ovaj je program sporiji jer ponavljamo cijeli ulazni niz za svaki samoglasnik.