У овом програму научићете да рачунате број сваког самогласника у низу помоћу разумевања речника и списка.
Да бисте разумели овај пример, требало би да имате знање о следећим Питхон програмским темама:
- Питхон за Лооп
- Питхон Стрингс
- Стринг Метходс
Изворни код: Коришћење речника
# 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)
Оутпут
('о': 5, 'и': 3, 'а': 2, 'е': 5, 'у': 3)
Овде смо узели низ сачуван у ип_стр. Користећи методу casefold()
, чинимо је погодном за безрезервно поређење. У основи, овај метод враћа верзију низа с малим словима.
Методу речника користимо fromkeys()
за конструисање новог речника са сваким самогласником као кључем и свим вредностима једнаким 0. Ово је иницијализација бројања.
Даље, прелазимо преко улазног низа помоћу петље фор.
У свакој итерацији проверавамо да ли се знак налази у кључевима речника ( True
ако је самогласник) и увећавамо вредност за 1 ако је тачно.
Изворни код: Коришћење листе и разумевања речника
# 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)
Излаз овог програма је исти као и горе.
Овде смо угнездили разумевање листе унутар разумевања речника да бисмо пребројали самогласнике у један ред.
Разумевање речника ради за све знакове самогласника, а разумевање листе унутар разумевања речника проверава да ли се било који знак у низу подудара са тим одређеним самогласником.
На крају се генерише листа са 1 с за број сваког самогласничког знака. sum()
Метод се користи за израчунавање збир елемената за сваку листу.
Међутим, овај програм је спорији јер понављамо читав улазни низ за сваки самогласник.