在此程序中,您將學習使用字典和列表理解來計算字符串中每個元音的數量。
要理解此示例,您應該了解以下Python編程主題:
#Python 程序計算每個元音的數目 #元音字符串 vowels = 'aeiou' ip_str = 'Hello, have you tried our tutorial section yet?' #使用casefold方法,將字符串中的所有大寫字母轉換為小寫字母。 ip_str = ip_str.casefold() #用每個元音字母作為鍵和值為0的字典 count = {}.fromkeys(vowels,0) #統計元音數 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()方法,我們使它適合于不區(qū)分大小寫比較。基本上,該方法返回字符串的小寫版本。
我們使用字典方法fromkeys()構造一個新字典,每個元音作為其鍵并且所有值等于0。這是計數的初始化。
接下來,我們使用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)
該程序的輸出與上面的相同。
在這里,我們將列表理解嵌套在字典列表中,以在一行中計算元音。
但是,由于我們迭代每個元音的整個輸入字符串,因此該程序的速度較慢。