Contar palabras en cadena en Python

Elsie Dela Pena 30 enero 2023
  1. Utilice los métodos split() y len() para contar palabras en una cadena de Python
  2. Utilice el módulo RegEx para contar palabras en una cadena de Python
  3. Utilice los métodos sum(), strip() y split() para contar palabras en una cadena de Python
  4. Utilice el método count() para contar palabras en Python String Python
Contar palabras en cadena en Python

Este tutorial presentará cómo contar palabras en una cadena de Python.

Utilice los métodos split() y len() para contar palabras en una cadena de Python

split() es un método incorporado en Python que separa las palabras dentro de una cadena usando un separador específico y devuelve un array de cadenas. Este método acepta como máximo dos parámetros como argumento:

  • separator (opcional): actúa como un delimitador (por ejemplo, comas, punto y coma, comillas o barras). Especifica el límite en el que se separa en la cadena. El separator predeterminado es cualquier espacio en blanco (espacio, nueva línea, tabulación, etc.) si no se especifica el separator.
  • maxsplit (opcional) - Define el número máximo de splits. El valor predeterminado de maxsplit si no está definido es -1, lo que significa que no tiene límites y dividirá la cadena en varios trozos.

Sintaxis de split():

str.split(separator, maxsplit)

len() también es un método incorporado de Python, que devuelve el número de cadenas en un array o cuenta la longitud de los elementos en un objeto. Este método solo acepta un parámetro: una cadena, bytes, lista, objeto, conjunto o colección. Generará una excepción “TypeError” si el argumento falta o no es válido.

Sintaxis de len():

len(s)

Veamos cómo los métodos split() y len() cuentan las palabras en una cadena.

Ejemplo 1: sin parámetros

# initialize string
text = "The quick brown fox jumps over the lazy dog"

# default separator: space
result = len(text.split())

print("There are " + str(result) + " words.")

Producción :

There are 9 words.

Ejemplo 2: Con el parámetro separator

# initialize string
bucket_list = "Japan, Singapore, Maldives, Europe, Italy, Korea"

# comma delimiter
result = len(bucket_list.split(","))

# Prints an array of strings
print(bucket_list.split(","))

print("There are " + str(result) + " words.")

Producción :

['Japan', ' Singapore', ' Maldives', ' Europe', ' Italy', ' Korea']
There are 6 words.

El método split() devolverá una nueva lista de cadenas, y len() cuenta la cadena dentro de la lista.

Ejemplo 3: Con los parámetros separator y maxsplit

# initialize string
bucket_list = "Japan, Singapore, Maldives, Europe, Italy, Korea"

# comma delimiter
result = len(bucket_list.split(",", 3))

# Prints an array of strings
print(bucket_list.split(",", 3))

print("There are " + str(result) + " words.")

Producción :

['Japan', ' Singapore', ' Maldives', ' Europe, Italy, Korea']
There are 4 words.

maxsplit divide solo las tres primeras comas en el bucket_list. Si establece el maxsplit, la lista tendrá un elemento maxsplit+1.

Producción :

['Japan', ' Singapore', ' Maldives, Europe, Italy, Korea']
There are 3 words.

El método split() divide las cadenas grandes en más pequeñas. Por lo tanto, el recuento de palabras en el array de cadenas se basará no exactamente en las palabras, sino en cómo se define el separador dividido.

Utilice el módulo RegEx para contar palabras en una cadena de Python

La expresión regular, regex o regexp para abreviar, es una herramienta muy poderosa para buscar y manipular cadenas de texto; esto se puede utilizar para preprocesamiento de datos, fines de validación, búsqueda de un patrón en una cadena de texto, etc. Regex también puede ayudar a contar palabras en una cadena de texto en escenarios donde tiene signos de puntuación o caracteres especiales que no son necesarios. Regex es un paquete integrado de Python, por lo que solo necesitamos importar el paquete re para comenzar a usarlo.

# import regex module
import re

# initialize string
text = "Python !! is the be1st $$             programming language @"

# using regex findall()
result = len(re.findall(r"\w+", text))

print("There are " + str(result) + " words.")

Producción :

There are 6 words.

Utilice los métodos sum(), strip() y split() para contar palabras en una cadena de Python

Este enfoque cuenta las palabras sin usar expresiones regulares. sum(), strip() y split() son todos métodos integrados en Python. Discutiremos brevemente cada método y sus funcionalidades.

El método sum() suma los elementos de izquierda a derecha y devuelve la suma. El método toma dos parámetros:

  • iterable (obligatorio): una cadena, lista, tupla, etc., para sumar. Deben ser números.
  • start (opcional): un número que se suma a la suma o al valor de retorno del método.

Sintaxis de sum():

sum(iterable, start)

El siguiente es el método strip(), que devuelve una copia de la cadena sin los espacios en blanco iniciales y finales si no hay argumento; de lo contrario, esto elimina la cadena definida en el argumento.

  • chars (opcional): especifica la cadena que se eliminará de las partes izquierda y derecha del texto.

Sintaxis de string.strip():

string.strip(chars)

Finalmente, el método split(), ya se discutió antes de este enfoque.

Ahora, usemos estos métodos juntos para contar palabras en una cadena. Primero, necesitamos importar la string, un módulo incorporado de Python, antes de usar sus funcionalidades.

import string

# initialize string
text = "Python !! is the be1st $$             programming language @"

# using the sum(), strip(), split() methods
result = sum([i.strip(string.punctuation).isalpha() for i in text.split()])

print("There are " + str(result) + " words.")

Producción :

There are 5 words.

Utilice el método count() para contar palabras en Python String Python

El método count() es un método integrado en Python. Toma tres parámetros y devuelve el número de ocurrencias según la subcadena dada.

  • substring (obligatorio): una palabra clave que se buscará en la cadena
  • start (opción) - índice de dónde comienza la búsqueda
  • end (opción) - índice de dónde termina la búsqueda

Nota: El índice comienza desde 0 en Python.

Sintaxis de count():

string.count(substring, start, end)

Este método es diferente del método anterior ya que no devuelve el total de palabras encontradas en la cadena, sino el número de ocurrencias encontradas dada la subcadena. Veamos cómo funciona este método a partir del siguiente ejemplo:

# initialize string
text = "Python: How to count words in string Python"
substring = "Python"

total_occurrences = text.count(substring)

print("There are " + str(total_occurrences) + " occurrences.")

Producción :

There are 2 occurrences.

En este método, no importa si la subcadena es una palabra completa, frase, letra o cualquier combinación de caracteres o números.

En resumen, puede elegir cualquiera de estos enfoques dependiendo de su caso de uso. Para palabras separadas por espacios, podemos usar el enfoque sencillo: las funciones split() o len(). Para filtrar cadenas de texto para contar palabras sin caracteres especiales, use el módulo regex. Crea un patrón que cuente las palabras que no incluyan ciertos caracteres. Sin utilizar regex, utilice la alternativa que es la combinación de los métodos sum() + strip() + split(). Por último, el método count() también se puede utilizar para contar la palabra específica que se encuentra en la cadena.

Artículo relacionado - Python String