2016-07-24 5 views
-1

に変換すると、母音が文字列の中に現れる辞書の数を見つけると、Pythonコードの結果を変換するのに役立ちますか?Pythonの結果を辞書

count = 0 
s = "apple" 
vowels = ['a' , 'e' , 'i' ,'o' , 'u'] 
    for char in s: 
    if char in vowels: 
    count += 1 
    print ('Number of vowels: ' + str(count)) 

結果は次のようになります。リンゴのための :{ '':1、 'E':1}

+1

どの辞書を取得しようとしていますか?母音から出現するまでの時間数? – Mureinik

答えて

0

このような単純な変更はどうなる:今、私たちが行う必要があるすべてはmatches辞書をプリントアウトすることである代わりにcount += 1をインクリメントの、辞書に直接インクリメント:

count = 0 
s = "apple" 
vowels = ['a' , 'e' , 'i' ,'o' , 'u'] 
vowels_dict = {} 
for char in s: 
    if char in vowels: 
     if char in vowels_dict: 
      vowels_dict[char] +=1 
     else: 
      vowels_dict[char] = 1 

print (vowels_dict) 
+0

インデントがオフで、最初は 'vowels_dict'に何もないので、存在しないキーにはどのように追加しますか? –

+0

@PythonMaster: 'else'に' vowels_dict [char] = 1'があることに注意してください。 'else'のコロンは省かれましたが、コードのロジックは正しいです。私はそれを修正しました。 – zondo

+0

それはもっと意味があります、それについて申し訳ありません! –

0

まずは、辞書にvowelsを作ってみよう。我々は最初のループで行う試合を保持するために、第2のいずれかが必要になります。

s = "apples" 
vowels = dict.fromkeys('aeiou', 0) 
matches = {} 

私たちは、対応するキー(母音のをインクリメントする少しごforループを変更する必要があります):

for char in s: 
    if char in vowels: 
     vowels[char] += 1 

charが母音(または単に置くかどうかをチェックし、上記forループは、vowelsに見られる鍵)の一つです。たとえば、charが "a"だった場合、ifステートメントはTrueを返し、キー( "a")の値(コロンの後の整数)は次のように増加します。 1。その後、新しい値を代入し

for vowel in vowels: 
    if vowels[vowel] < 1: # The vowel didn't appear in the word 
     continue 
    else: 
     matches[str(vowel)] = vowels[vowel] 

最後の行がmatches辞書(matches[str(vowel)]部分)のための新しいキーを作成します。今、私たちが必要とするすべてはmatches辞書にすべてのキー、値が0以上を置くことですvowels辞書(= vowels[vowel]部分)のそれぞれのキーの値に等しいキーを入力します。

print matches 

全コード:

count = 0 
s = "apple" 
vowels = dict.fromkeys('aeiou', 0) 
matches = {} 
for char in s: 
    if char in vowels: 
     vowels[char] += 1 
for vowel in vowels: 
    if vowels[vowel] < 1: 
     continue 
    else: 
     matches[str(vowel)] = vowels[vowel] 

print matches 
+0

'dict.fromkeys( 'aeiou'、0)' – zondo

+0

であなたの母音辞書をより簡単にインスタンス化することができました。 –