Programa Python para contar o número de cada vogal

Neste programa, você aprenderá a contar o número de cada vogal em uma string usando dicionário e compreensão de lista.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Python:

  • Python for Loop
  • Python Strings
  • Métodos de String

Código-fonte: usando o dicionário

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

Resultado

 ('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3) 

Aqui, pegamos uma string armazenada em ip_str. Usando o método casefold(), o tornamos adequado para comparações sem caso. Basicamente, esse método retorna uma versão em minúsculas da string.

Usamos o método de dicionário fromkeys()para construir um novo dicionário com cada vogal como sua chave e todos os valores iguais a 0. Esta é a inicialização da contagem.

Em seguida, iteramos sobre a string de entrada usando um loop for.

Em cada iteração, verificamos se o caractere está nas chaves do dicionário ( Truese for vogal) e incrementamos o valor em 1 se verdadeiro.

Código-fonte: usando uma lista e uma compreensão de dicionário

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

O resultado deste programa é o mesmo acima.

Aqui, aninhamos uma compreensão de lista dentro de uma compreensão de dicionário para contar as vogais em uma única linha.

A compreensão do dicionário é executada para todos os caracteres de vogais e a compreensão da lista dentro da compreensão do dicionário verifica se algum caractere na string corresponde a essa vogal específica.

Ao final, é gerada uma lista com 1 s para o número de cada caractere vocálico. O sum()método é usado para calcular a soma dos elementos de cada lista.

No entanto, este programa é mais lento à medida que iteramos em toda a string de entrada para cada vogal.

Artigos interessantes...