Kode Sumber: Menggunakan Kamus
# 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)
Keluaran
{'o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3}
Di sini, kami telah mengambil string yang disimpan di ip_str. Menggunakan metode ini casefold()
, kami membuatnya cocok untuk perbandingan tanpa casing. Pada dasarnya, metode ini mengembalikan versi string huruf kecil.
Kami menggunakan metode kamus fromkeys()
untuk membuat kamus baru dengan setiap vokal sebagai kuncinya dan semua nilai sama dengan 0. Ini adalah inisialisasi hitungan.
Selanjutnya, kami mengulangi string input menggunakan for loop.
Di setiap iterasi, kami memeriksa apakah karakter ada di tombol kamus (True
jika itu adalah vokal) dan naikkan nilainya dengan 1 jika benar.
Kode Sumber: Menggunakan daftar dan pemahaman kamus
# 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)
Itu keluaran program ini sama seperti di atas.
Di sini, kami telah menyusun pemahaman daftar di dalam pemahaman kamus untuk menghitung vokal dalam satu baris.
Namun, program ini lebih lambat karena kami melakukan iterasi ke seluruh string input untuk setiap vokal.