У цій програмі ви навчитеся рахувати кількість кожного голосного у рядку за допомогою розуміння словника та списку.
Щоб зрозуміти цей приклад, ви повинні знати наступні теми програмування на Python:
- Python для Loop
- Рядки Python
- Струнні методи
Вихідний код: Використання словника
# 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)
Вихідні дані
('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3)
Тут ми взяли рядок, що зберігається в ip_str. Використовуючи метод casefold()
, ми робимо його придатним для безвипадкових порівнянь. В основному, цей метод повертає малу версію рядка.
Ми використовуємо словниковий метод, fromkeys()
щоб побудувати новий словник з кожною голосною в якості ключа та всіма значеннями, рівними 0. Це ініціалізація відліку.
Далі ми перебираємо вхідний рядок, використовуючи цикл for.
У кожній ітерації ми перевіряємо, чи є символ у ключах словника ( True
якщо він голосний), і збільшуємо значення на 1, якщо true.
Вихідний код: Використання списку та розуміння словника
# 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()
Метод використовується для обчислення суми елементів для кожного списку.
Однак ця програма працює повільніше, оскільки ми перебираємо весь вхідний рядок для кожного голосного.