在此程序中,您將學習使用字典和列表理解來計算字符串中每個元音的數(shù)量。
要理解此示例,您應該了解以下Python編程主題:
#Python 程序計算每個元音的數(shù)目
#元音字符串
vowels = 'aeiou'
ip_str = 'Hello, have you tried our tutorial section yet?'
#使用casefold方法,將字符串中的所有大寫字母轉(zhuǎn)換為小寫字母。
ip_str = ip_str.casefold()
#用每個元音字母作為鍵和值為0的字典
count = {}.fromkeys(vowels,0)
#統(tǒng)計元音數(shù)
for char in ip_str:
if char in count:
count[char] += 1
print(count)輸出結(jié)果
{'o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3}這里,我們?nèi)×艘粋€存儲在ip str中的字符串。使用casefold()方法,我們使它適合于不區(qū)分大小寫比較。基本上,該方法返回字符串的小寫版本。
我們使用字典方法fromkeys()構(gòu)造一個新字典,每個元音作為其鍵并且所有值等于0。這是計數(shù)的初始化。
接下來,我們使用for循環(huán)遍歷輸入字符串。
在每個迭代中,我們檢查字符是否在字典鍵中(如果是元音,則為True),如果為True,則將值增加1。
# 使用字典和列表理解
ip_str = 'Hello, have you tried our tutorial section yet?'
# 使其適用于不分大小寫的比較
ip_str = ip_str.casefold()
#計算元音
count = {x:sum([1 for char in ip_str if char == x]) for x in 'aeiou'}
print(count)該程序的輸出與上面的相同。
在這里,我們將列表理解嵌套在字典列表中,以在一行中計算元音。
但是,由于我們迭代每個元音的整個輸入字符串,因此該程序的速度較慢。