Contar ocorrências de um personagem em uma string em Python

Hiten Kanwar 10 outubro 2023
  1. Use a função count() para contar o número de caracteres que ocorrem em uma string em Python
  2. Use o collections.Counter para contar as ocorrências de um personagem em uma string em Python
  3. Use expressões regulares para contar as ocorrências de um caractere em uma string em Python
  4. Use o defaultdict para contar as ocorrências de um caractere em uma string em Python
  5. Use o pandas.value_counts() para contar as ocorrências de um personagem em uma string em Python
  6. Use uma expressão lambda para contar as ocorrências de um caractere em uma string em Python
  7. Use o loop for para contar as ocorrências de um caractere em uma string em Python
Contar ocorrências de um personagem em uma string em Python

Na programação, uma string é uma sequência de caracteres.

Este tutorial irá apresentar como contar o número de ocorrências de um caractere em uma String em Python.

Use a função count() para contar o número de caracteres que ocorrem em uma string em Python

Podemos contar a ocorrência de um valor em strings usando a função count(). Ele retornará quantas vezes o valor aparece na string fornecida.

Por exemplo,

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

Resultado:

4

Lembre-se de que maiúsculas e minúsculas são tratadas como caracteres diferentes. ‘A’ e ‘a’ serão tratados como caracteres diferentes e terão contagens diferentes.

Use o collections.Counter para contar as ocorrências de um personagem em uma string em Python

Um Counter é uma subclasse de dicionário presente no módulo collections. Ele armazena os elementos como chaves de dicionário e suas ocorrências são armazenadas como valores de dicionário. Em vez de gerar um erro, ele retorna uma contagem zero para itens ausentes.

Por exemplo,

from collections import Counter

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

Resultado:

4

É uma escolha melhor ao contar muitas letras, pois o contador calcula todas as contagens uma vez. É muito mais rápido do que a função count().

Use expressões regulares para contar as ocorrências de um caractere em uma string em Python

Uma expressão regular é uma sintaxe especializada mantida em um padrão que ajuda a encontrar as strings ou conjunto de strings correspondendo a esse padrão. Importamos o módulo re para trabalhar com expressões regulares.

Podemos usar a função findall() para o nosso problema.

Por exemplo,

import re

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

Resultado:

4

Use o defaultdict para contar as ocorrências de um caractere em uma string em Python

Defaultdict está presente no módulo collections e é derivado da classe de dicionário. Sua funcionalidade é relativamente igual à dos dicionários, exceto que nunca gera um KeyError, pois fornece um valor padrão para a chave que nunca existe.

Podemos usá-lo para obter as ocorrências de um caractere em uma string, conforme mostrado abaixo.

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

Resultado:

4
2
0

Use o pandas.value_counts() para contar as ocorrências de um personagem em uma string em Python

Podemos usar o método pandas.value_counts() para obter as ocorrências de todos os caracteres presentes na string fornecida. Precisamos passar a string como um objeto Series.

Por exemplo,

import pandas as pd

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

Resultado:

     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

Ele retorna as ocorrências de todos os personagens em um objeto Series.

Use uma expressão lambda para contar as ocorrências de um caractere em uma string em Python

As funções lambda podem não apenas contar ocorrências de uma string dada, mas também podem funcionar quando temos a string, como uma lista de sub-strings.

Veja o seguinte 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)))

Resultado:

4

Use o loop for para contar as ocorrências de um caractere em uma string em Python

Nós iteramos sobre a string e, se o elemento for igual ao caractere desejado, a variável de contagem é incrementada até chegarmos ao final da string.

Por exemplo,

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

Resultado:

4

Podemos ver outra maneira de usar este método com a função sum() que pode ser vista abaixo.

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

Resultado:

4

Artigo relacionado - Python String