幫助轉換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))
結果應該是: 蘋果:{ 'A':1, 'E':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))
結果應該是: 蘋果:{ 'A':1, 'E':1}
像這樣的簡單的變化會做的:不是遞增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)
你的縮進是關閉的,原來在'vowels_dict'裏面什麼也沒有,所以你如何添加任何東西到一個不存在的鍵? –
@PythonMaster:注意'else'有'vowels_dict [char] = 1'。 'else'中的冒號被遺漏了,但是代碼的邏輯是正確的。我現在修復了它。 – zondo
現在它變得更有意義,對此感到抱歉! –
首先,讓我們vowels
到字典中。我們需要的第二個舉行對我們做的第一循環的比賽:
s = "apples"
vowels = dict.fromkeys('aeiou', 0)
matches = {}
我們需要稍微修改for
循環遞增值對應關鍵的(元音):
for char in s:
if char in vowels:
vowels[char] += 1
的for
循環上述檢查是否char
是元音(或者簡單地說,是)在vowels
發現的關鍵之一。如果是,則我們將相應鍵的值增加1.例如,如果char
爲「a」,則if
語句將返回True,並且鍵(「a」)的值(冒號後的整數)將增加一。現在,我們需要的是把它的值是在0所有鍵進入matches
詞典:
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)]
部分)一個新的密鑰,然後分配新的價值鍵等於vowels
字典(= vowels[vowel]
部分)中相應鍵的值。現在我們需要做的就是打印出來的matches
詞典:
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
你的元音詞典可以通過'dict.fromkeys('aeiou',0)'' – zondo
更簡單地實例化。這是行得通的,節省了時間打字,謝謝! –
你想要什麼詞典?從元音到它出現的次數? – Mureinik