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)