ソースコード:辞書の使用
# 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
母音の場合)、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行の母音をカウントしています。
辞書内包表記はすべての母音文字に対して実行され、辞書内包表記内のリスト内包表記は、文字列内の文字がその特定の母音に一致するかどうかをチェックします。
最後に、 1sは、各母音文字の数に対して生成されます。 ザ・ sum()
メソッドは、各リストの要素の合計を計算するために使用されます。
ただし、このプログラムは、各母音の入力文字列全体を反復処理するため、処理が遅くなります。
Hope this helps!
Source link