📌  相关文章
📜  Python程序来计算每个元音的数量

📅  最后修改于: 2020-09-20 16:30:17             🧑  作者: Mango

在此程序中,您将学习使用字典和列表理解来计算字符串中每个元音的数量。

源代码:使用字典

# 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)

该程序的输出与上面的相同。

在这里,我们将列表推导嵌套在字典推导中,以在一行中计算元音。

但是,由于我们迭代每个元音的整个输入字符串 ,因此该程序的速度较慢。