В этой программе вы научитесь считать количество каждой гласной в строке, используя словарь и понимание списка.
Чтобы понять этот пример, вы должны знать следующие темы программирования Python:
- Python для цикла
- Строки 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, если оно истинно.
Исходный код: использование списка и понимание словаря
# 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()
Метод используется для вычисления суммы элементов для каждого списка.
Однако эта программа работает медленнее, поскольку мы перебираем всю входную строку для каждой гласной.