Compter les occurrences d'un caractère dans une chaîne en Python

Hiten Kanwar 10 octobre 2023
  1. Utilisez la fonction count() pour compter le nombre de caractères apparaissant dans une chaîne en Python
  2. Utilisez le collections.Counter pour compter les occurrences d’un caractère dans une chaîne en Python
  3. Utiliser des expressions régulières pour compter les occurrences d’un caractère dans une chaîne en Python
  4. Utilisez le defaultdict pour compter les occurrences d’un caractère dans une chaîne en Python
  5. Utilisez le pandas.value_counts() pour compter les occurrences d’un caractère dans une chaîne en Python
  6. Utiliser une expression lambda pour compter les occurrences d’un caractère dans une chaîne en Python
  7. Utilisez la boucle for pour compter les occurrences d’un caractère dans une chaîne en Python
Compter les occurrences d'un caractère dans une chaîne en Python

En programmation, une chaîne est une séquence de caractères.

Ce tutoriel présentera comment compter le nombre d’occurrences d’un caractère dans une chaîne en Python.

Utilisez la fonction count() pour compter le nombre de caractères apparaissant dans une chaîne en Python

On peut compter l’occurrence d’une valeur dans les chaînes à l’aide de la fonction count(). Il renverra combien de fois la valeur apparaît dans la chaîne donnée.

Par example,

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

Production:

4

N’oubliez pas que les majuscules et les minuscules sont traitées comme des caractères différents. A et a seront traités comme des caractères différents et auront des comptes différents.

Utilisez le collections.Counter pour compter les occurrences d’un caractère dans une chaîne en Python

Un Counter est une sous-classe de dictionnaire présente dans le module collections. Il stocke les éléments sous forme de clés de dictionnaire et leurs occurrences sont stockées sous forme de valeurs de dictionnaire. Au lieu de générer une erreur, il renvoie un nombre de zéro pour les éléments manquants.

Par example,

from collections import Counter

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

Production:

4

C’est un meilleur choix lorsque vous comptez plusieurs lettres car le compteur calcule tous les comptes une fois. C’est beaucoup plus rapide que la fonction count().

Utiliser des expressions régulières pour compter les occurrences d’un caractère dans une chaîne en Python

Une expression régulière est une syntaxe spécialisée contenue dans un modèle qui aide à trouver les chaînes ou l’ensemble de chaînes en faisant correspondre ce modèle. Nous importons le module re pour travailler avec des expressions régulières.

Nous pouvons utiliser la fonction findall() pour notre problème.

Par example,

import re

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

Production:

4

Utilisez le defaultdict pour compter les occurrences d’un caractère dans une chaîne en Python

Defaultdict est présent dans le module collections et est dérivé de la classe de dictionnaire. Sa fonctionnalité est relativement la même que celle des dictionnaires, sauf qu’elle ne génère jamais de KeyError, car elle fournit une valeur par défaut pour la clé qui n’existe jamais.

Nous pouvons l’utiliser pour obtenir les occurrences d’un caractère dans une chaîne comme indiqué ci-dessous.

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

Production:

4
2
0

Utilisez le pandas.value_counts() pour compter les occurrences d’un caractère dans une chaîne en Python

Nous pouvons utiliser la méthode pandas.value_counts() pour obtenir les occurrences de tous les caractères présents dans la chaîne fournie. Nous devons passer la chaîne en tant qu’objet Series.

Par example,

import pandas as pd

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

Production:

     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

Il renvoie les occurrences de tous les caractères d’un objet Series.

Utiliser une expression lambda pour compter les occurrences d’un caractère dans une chaîne en Python

Les fonctions lambda peuvent non seulement compter les occurrences de la chaîne donnée, mais peuvent également fonctionner lorsque nous avons la chaîne, en tant que liste de sous-chaînes.

Voir le code suivant.

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

Production:

4

Utilisez la boucle for pour compter les occurrences d’un caractère dans une chaîne en Python

Nous parcourons la chaîne et si l’élément est égal au caractère souhaité, la variable count est incrémentée jusqu’à ce que nous atteignions la fin de la chaîne.

Par example,

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

Production:

4

Nous pouvons voir une autre façon d’utiliser cette méthode avec la fonction sum() ci-dessous.

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

Production:

4

Article connexe - Python String