Pesquisa de site

Programa Python para contagem de palavras com letra específica


Neste artigo, aprenderemos como contar palavras com uma letra específica em uma string em python.

Métodos usados

A seguir estão os vários métodos para realizar esta tarefa -

  • Usando compreensão de lista, funções len() e split()

  • Usando funções split() e find()

  • Usando funções split(),replace() e len()

  • Usando a função Counter()

Exemplo

Suponha que pegamos uma string de entrada e algum caractere aleatório. Agora contaremos as palavras que contêm o caractere de entrada fornecido em uma string de entrada.

Entrada

inputString = 'hello tutorialspoint python codes'
inputChar = "p"

Saída

Count of words containing the char 'p' is: 2

Na string acima, as palavras que contêm o caractere de entrada ‘p’ são tutorialspoint , python. Portanto, a saída é 2.

Método 1: usando compreensão de lista, funções len() e split()

Compreensão de lista

Quando você deseja construir uma nova lista com base nos valores de uma lista existente, a compreensão da lista fornece uma sintaxe mais curta/concisa.

len() - O número de itens em um objeto é retornado pelo método len(). A função len() retorna o número de caracteres em uma string quando o objeto é uma string.

split() - divide uma string em uma lista. Podemos definir o separador; o separador padrão é qualquer espaço em branco.

Algoritmo (etapas)

A seguir estão o Algoritmo/etapas a serem seguidas para realizar a tarefa desejada –.

  • Crie uma variável para armazenar uma string de entrada.

  • Imprima a lista de entrada.

  • Crie outra variável para armazenar um caractere de entrada.

  • Use a função split() para dividir a string de entrada em uma lista de palavras e percorrer essa lista e então verificar se o caractere de entrada está presente no elemento da lista atual

  • Imprima a contagem de palavras contendo o caractere de entrada fornecido em uma string de entrada.

Exemplo

O programa a seguir retorna uma contagem de palavras com o caractere de entrada fornecido em uma string de entrada usando compreensão de lista, funções len() e split() –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# splitting the input string into a list of words and traversing in that list

# and then checking if the input char is present in the current list element
wordsCount = len([element for element in inputString.split() if inputChar in element])

# printing the count of words containing the input character
print("The Count of words containing the char 'p' is:", wordsCount)

Saída

Ao ser executado, o programa acima irá gerar a seguinte saída –

Input String: hello tutorialspoint python codes
The count of words containing the char 'p' is: 2

Método 2: usando funções split() e find()

método find() - Encontra a primeira ocorrência do valor fornecido. Este método retorna -1 se o valor não for encontrado.

Sintaxe

string.find(value, start, end)

Exemplo

O programa a seguir retorna uma contagem de palavras com o caractere de entrada fornecido em uma string de entrada usando as funções split() e find() –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount=0

# splitting input string into the list of words
wordsList= inputString.split()

# traversing in that words list
for element in wordsList:
   
   # checking whether input char is present in the current list element
   if(element.find(inputChar)!=-1):
      
      # incrementing word count value by 1 if the condition is true
      wordsCount+=1
print("The Count of words containing the char 'p' is:", wordsCount)

Saída

Ao ser executado, o programa acima irá gerar a seguinte saída –

Input String: hello tutorialspoint python codes
The count of words containing the char 'p' is: 2

Método 3: usando funções split(),replace() e len()

função replace() - retorna uma cópia da string que substitui todas as ocorrências de uma substring antiga por outra nova substring.

Sintaxe

string.replace(old, new, count)

Exemplo

O programa a seguir retorna uma contagem de palavras com o caractere de entrada fornecido em uma string de entrada usando as funções split(),replace() e len() –

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount=0

# splitting input string into the list of words
wordsList= inputString.split()

# traversing in that words list
for element in wordsList:

   # replacing given input char with space and storing that string
   p = element.replace(inputChar, "")

   # incrementing the words count by 1 if the length of the above string # is less than the length of the current element
   if(len(p) < len(element)):
      wordsCount += 1
print("The Count of words containing the char 'p' is:", wordsCount)

Saída

Input String: hello tutorialspoint python codes
The count of words containing the char 'p' is: 2

Método 4: usando a função Counter()

Função Counter() - uma subclasse que conta os objetos hasháveis. Ele cria implicitamente uma tabela hash de um iterável quando chamado/invocado.

Neste método, a função Counter() retorna a frequência de caracteres de cada palavra em uma string de entrada.

Exemplo

O programa a seguir retorna uma contagem de palavras com o caractere de entrada fornecido em uma string de entrada usando a função Counter() –

# importing a Counter function from the collections module
from collections import Counter

# input string
inputString = 'hello tutorialspoint python codes'

# printing input string
print("Input String:", inputString)

# input character
inputChar = "p"

# storing the words count with the input character
wordsCount = 0

# splitting input string into the list of words
wordsList = inputString.split()

# traversing through the elements of the words list
for element in wordsList:
   
   # getting the frequency of characters of the current word as a key-value pair
   ele_frequency = Counter(element)
   
   # checking whether the input char is present in the keys of the frequency dictionary
   if inputChar in ele_frequency.keys():
      
      # incrementing the words count by 1 if the condition is true
      wordsCount += 1
print("The Count of words containing the char 'p' is:", wordsCount)

Saída

Input String: hello tutorialspoint python codes
The count of words containing the char 'p' is: 2

Conclusão

Neste artigo, estudamos 4 maneiras diferentes de contar palavras que começam com uma determinada letra. Também aprendemos como usar a função Counter() para obter a frequência dos itens iteráveis (hash de dicionário)

Artigos relacionados: