Búsqueda de sitios web

Programa Python para contar palabras con letra específica


En este artículo, aprenderemos cómo contar palabras con una letra específica en una cadena en Python.

Métodos utilizados

Los siguientes son los diversos métodos para realizar esta tarea:

  • Uso de funciones de comprensión de listas, len() y split()

  • Usando funciones split() y find()

  • Usando las funciones dividir(),reemplazar() y len()

  • Usando la función Contador()

Ejemplo

Supongamos que hemos tomado una cadena de entrada y algún carácter aleatorio. Ahora contaremos las palabras que contienen el carácter de entrada dado en una cadena de entrada.

Aporte

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

Producción

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

En la cadena anterior, las palabras que contienen el carácter de entrada 'p' son tutorialspoint, python. Por tanto la salida es 2.

Método 1: uso de funciones de comprensión de listas, len() y split()

Comprensión de listas

Cuando desee crear una nueva lista basada en los valores de una lista existente, la comprensión de listas proporciona una sintaxis más corta y concisa.

len(): el método len() devuelve el número de elementos de un objeto. La función len() devuelve el número de caracteres en una cadena cuando el objeto es una cadena.

split(): divide una cadena en una lista. Podemos definir el separador; el separador predeterminado es cualquier espacio en blanco.

Algoritmo (pasos)

A continuación se detallan el algoritmo/pasos a seguir para realizar la tarea deseada.

  • Cree una variable para almacenar una cadena de entrada.

  • Imprima la lista de entrada.

  • Cree otra variable para almacenar un carácter de entrada.

  • Utilice la función split() para dividir la cadena de entrada en una lista de palabras y recorrer esa lista y luego verificar si el carácter de entrada está presente en el elemento de la lista actual

  • Imprime el recuento de palabras que contienen el carácter de entrada dado en una cadena de entrada.

Ejemplo

El siguiente programa devuelve un recuento de palabras con el carácter de entrada dado en una cadena de entrada utilizando las funciones de comprensión de listas, len() y 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)

Producción

Al ejecutarse, el programa anterior generará el siguiente resultado:

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

Método 2: usar las funciones split() y find()

método find(): busca la primera aparición del valor dado. Este método devuelve -1 si no se encuentra el valor.

Sintaxis

string.find(value, start, end)

Ejemplo

El siguiente programa devuelve un recuento de palabras con el carácter de entrada dado en una cadena de entrada usando las funciones split() y 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)

Producción

Al ejecutarse, el programa anterior generará el siguiente resultado:

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

Método 3: usar las funciones split(),replace() y len()

función reemplazar(): devuelve una copia de la cadena que reemplaza todas las apariciones de una subcadena antigua con otra subcadena nueva.

Sintaxis

string.replace(old, new, count)

Ejemplo

El siguiente programa devuelve un recuento de palabras con el carácter de entrada dado en una cadena de entrada usando las funciones split(),replace() y 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)

Producción

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

Método 4: usar la función Counter()

Función Counter(): una subclase que cuenta los objetos hash. Implícitamente crea una tabla hash de un iterable cuando se llama/invoca.

En este método, la función Counter() devuelve la frecuencia de los caracteres de cada palabra en una cadena de entrada.

Ejemplo

El siguiente programa devuelve un recuento de palabras con el carácter de entrada dado en una cadena de entrada usando la función Contador():

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

Producción

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

Conclusión

En este artículo, estudiamos 4 formas diferentes de contar palabras que comienzan con una letra en particular. También aprendimos cómo usar la función Counter() para obtener la frecuencia de los elementos iterables (hashing del diccionario).

Artículos relacionados: