Contar apariciones de un carácter en una cadena en Python

Hiten Kanwar 10 octubre 2023
  1. Utilice la función count() para contar el número de caracteres que aparecen en una cadena en Python
  2. Utilice el collections.Counter para contar las apariciones de un carácter en una cadena en Python
  3. Use expresiones regulares para contar las apariciones de un carácter en una cadena en Python
  4. Utilice el defaultdict para contar las apariciones de un carácter en una cadena en Python
  5. Utilice pandas.value_counts() para contar las apariciones de un carácter en una cadena en Python
  6. Utilice una expresión lambda para contar las apariciones de un carácter en una cadena en Python
  7. Utilice el bucle for para contar las apariciones de un carácter en una cadena en Python
Contar apariciones de un carácter en una cadena en Python

En Programación, una cadena es una secuencia de caracteres.

Este tutorial presentará cómo contar el número de apariciones de un carácter en una cadena en Python.

Utilice la función count() para contar el número de caracteres que aparecen en una cadena en Python

Podemos contar la ocurrencia de un valor en cadenas usando la función count(). Devolverá cuántas veces aparece el valor en la cadena dada.

Por ejemplo,

print("Mary had a little lamb".count("a"))

Producción :

4

Recuerde, las mayúsculas y minúsculas se tratan como caracteres diferentes. ‘A’ y ‘a’ se tratarán como caracteres diferentes y tendrán diferentes recuentos.

Utilice el collections.Counter para contar las apariciones de un carácter en una cadena en Python

Un Counter es una subclase de diccionario presente en el módulo collections. Almacena los elementos como claves de diccionario y sus apariciones se almacenan como valores de diccionario. En lugar de generar un error, devuelve un recuento cero para los elementos faltantes.

Por ejemplo,

from collections import Counter

my_str = "Mary had a little lamb"
counter = Counter(my_str)
print(counter["a"])

Producción :

4

Es una mejor opción cuando se cuentan muchas letras, ya que el contador calcula todas las cuentas una vez. Es mucho más rápido que la función count().

Use expresiones regulares para contar las apariciones de un carácter en una cadena en Python

Una expresión regular es una sintaxis especializada contenida en un patrón que ayuda a encontrar las cadenas o el conjunto de cadenas haciendo coincidir ese patrón. Importamos el módulo re para trabajar con expresiones regulares.

Podemos usar la función findall() para nuestro problema.

Por ejemplo,

import re

my_string = "Mary had a little lamb"
print(len(re.findall("a", my_string)))

Producción :

4

Utilice el defaultdict para contar las apariciones de un carácter en una cadena en Python

Defaultdict está presente en el módulo collections y se deriva de la clase de diccionario. Su funcionalidad es relativamente la misma que la de los diccionarios, excepto que nunca genera un KeyError, ya que proporciona un valor predeterminado para la clave que nunca existe.

Podemos usarlo para obtener las apariciones de un carácter en una cadena como se muestra a continuación.

from collections import defaultdict

text = "Mary had a little lamb"
chars = defaultdict(int)

for char in text:
    chars[char] += 1

print(chars["a"])
print(chars["t"])
print(chars["w"])  # element not present in the string, hence print 0

Producción :

4
2
0

Utilice pandas.value_counts() para contar las apariciones de un carácter en una cadena en Python

Podemos usar el método pandas.value_counts() para obtener las ocurrencias de todos los caracteres presentes en la cadena proporcionada. Necesitamos pasar la cadena como un objeto Series.

Por ejemplo,

import pandas as pd

phrase = "Mary had a little lamb"
print(pd.Series(list(phrase)).value_counts())

Producción :

     4
a    4
l    3
t    2
e    1
b    1
h    1
r    1
y    1
M    1
m    1
i    1
d    1
dtype: int64

Devuelve las apariciones de todos los caracteres en un objeto Series.

Utilice una expresión lambda para contar las apariciones de un carácter en una cadena en Python

Las funciones lambda no solo pueden contar las ocurrencias de la cadena dada, sino que también pueden funcionar cuando tenemos la cadena, como una lista de subcadenas.

Consulte el siguiente código.

sentence = ["M", "ar", "y", "had", "a", "little", "l", "am", "b"]
print(sum(map(lambda x: 1 if "a" in x else 0, sentence)))

Producción :

4

Utilice el bucle for para contar las apariciones de un carácter en una cadena en Python

Iteramos sobre la cadena, y si el elemento es igual al carácter deseado, la variable de recuento se incrementa hasta llegar al final de la cadena.

Por ejemplo,

sentence = "Mary had a little lamb"
count = 0
for i in sentence:
    if i == "a":
        count = count + 1
print(count)

Producción :

4

Podemos ver otra forma de usar este método con la función sum() que se puede ver a continuación.

my_string = "Mary had a little lamb"
print(sum(char == "a" for char in my_string))

Producción :

4

Artículo relacionado - Python String