Compter les mots dans une chaîne en Python

Elsie Dela Pena 30 janvier 2023
  1. Utilisez les méthodes split() et len() pour compter les mots dans une chaîne Python
  2. Utiliser le module RegEx pour compter les mots dans la chaîne Python
  3. Utilisez les méthodes sum(), strip() et split() pour compter les mots dans une chaîne Python
  4. Utilisez la méthode count() pour compter les mots dans Python String Python
Compter les mots dans une chaîne en Python

Ce tutoriel présentera comment compter les mots dans la chaîne Python.

Utilisez les méthodes split() et len() pour compter les mots dans une chaîne Python

split() est une méthode intégrée à Python qui sépare les mots à l’intérieur d’une chaîne en utilisant un séparateur spécifique et renvoie un tableau de chaînes. Cette méthode accepte au plus deux paramètres comme argument :

  • seperator (facultatif) - Il agit comme un délimiteur (par exemple, des virgules, des points-virgules, des guillemets ou des barres obliques). Spécifie la limite sur laquelle séparer dans la chaîne. Le seperator par défaut est tout espace blanc (espace, nouvelle ligne, tabulation, etc.) si le seperator n’est pas spécifié.
  • maxsplit (optionnel) - Il définit le nombre maximum de splits. La valeur par défaut de maxsplit si elle n’est pas définie est -1, ce qui signifie qu’elle n’a pas de limites et divisera la chaîne en plusieurs morceaux.

Syntaxe de split() :

str.split(separator, maxsplit)

len() est également une méthode intégrée de Python, qui renvoie le nombre de chaînes dans un tableau ou compte la longueur des éléments dans un objet. Cette méthode n’accepte qu’un seul paramètre : une chaîne, des octets, une liste, un objet, un ensemble ou une collection. Il lèvera une exception TypeError si l’argument est manquant ou invalide.

Syntaxe de len() :

len(s)

Voyons comment les méthodes split() et len() comptent les mots dans une chaîne.

Exemple 1 : aucun paramètre

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

Production:

There are 9 words.

Exemple 2 : Avec le paramètre seperator

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

Production:

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

La méthode split() renverra une nouvelle liste de chaînes, et len() compte la chaîne à l’intérieur de la liste.

Exemple 3 : Avec les paramètres separator et 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.")

Production:

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

maxsplit divise uniquement les trois premières virgules de la bucket_list. Si vous définissez le maxsplit, la liste aura un élément maxsplit+1.

Production:

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

La méthode split() décompose les grandes chaînes en plus petites. Par conséquent, le comptage des mots dans le tableau de chaînes sera basé non pas exactement sur les mots mais sur la façon dont le séparateur de fractionnement est défini.

Utiliser le module RegEx pour compter les mots dans la chaîne Python

L’expression régulière, regex ou regexp en abrégé, est un outil très puissant pour rechercher et manipuler des chaînes de texte ; cela peut être utilisé pour le prétraitement des données, à des fins de validation, pour trouver un modèle dans une chaîne de texte, etc. Regex peut également aider à compter les mots dans une chaîne de texte dans les scénarios où il y a des signes de ponctuation ou des caractères spéciaux qui ne sont pas nécessaires. Regex est un package Python intégré, il suffit donc d’importer le package re pour commencer à l’utiliser.

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

Production:

There are 6 words.

Utilisez les méthodes sum(), strip() et split() pour compter les mots dans une chaîne Python

Cette approche compte les mots sans utiliser de regex. sum(), strip() et split() sont toutes des méthodes intégrées à Python. Nous discuterons brièvement de chaque méthode et de ses fonctionnalités.

La méthode sum() additionne les éléments de gauche à droite et renvoie la somme. La méthode prend deux paramètres :

  • itérable (obligatoire) - une chaîne, une liste, un tuple, etc., à additionner. Ceux-ci devraient être des nombres.
  • start (facultatif) - Un nombre ajouté à la somme ou à la valeur de retour de la méthode.

Syntaxe de sum() :

sum(iterable, start)

La suivante est la méthode strip(), qui renvoie une copie de la chaîne sans les espaces blancs de début et de fin s’il n’y a pas d’argument ; sinon, cela supprime la chaîne définie dans l’argument.

  • chars (facultatif) - spécifie la chaîne à supprimer des parties gauche et droite du texte.

Syntaxe de string.strip() :

string.strip(chars)

Enfin, la méthode split(), a déjà été évoquée avant cette approche.

Maintenant, utilisons ces méthodes ensemble pour compter les mots dans une chaîne. Tout d’abord, nous devons importer la string, un module Python intégré, avant d’utiliser ses fonctionnalités.

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.")

Production:

There are 5 words.

Utilisez la méthode count() pour compter les mots dans Python String Python

La méthode count() est une méthode intégrée à Python. Il prend trois paramètres et renvoie le nombre d’occurrences en fonction de la sous-chaîne donnée.

  • substring (obligatoire) - un mot-clé à rechercher dans la chaîne
  • start (option) - index indiquant où la recherche commence
  • end (option) - index indiquant où se termine la recherche

Remarque : L’index commence à 0 en Python.

Syntaxe de count() :

string.count(substring, start, end)

Cette méthode est différente de la méthode précédente puisqu’elle ne retourne pas le nombre total de mots trouvés dans la chaîne mais le nombre d’occurrences trouvées compte tenu de la sous-chaîne. Voyons comment cette méthode fonctionne à partir de l’exemple ci-dessous :

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

Production:

There are 2 occurrences.

Dans cette méthode, peu importe que la sous-chaîne soit un mot entier, une phrase, une lettre ou toute combinaison de caractères ou de chiffres.

En résumé, vous pouvez choisir l’une de ces approches en fonction de votre cas d’utilisation. Pour les mots séparés par des espaces, nous pouvons utiliser l’approche directe : les fonctions split() ou len(). Pour filtrer les chaînes de texte pour compter les mots sans caractères spéciaux, utilisez le module regex. Créez un modèle qui compte les mots qui n’incluent pas certains caractères. Sans utiliser regex, utilisez l’alternative qui est la combinaison des méthodes sum() + strip() + split(). Enfin, la méthode count() peut également être utilisée pour compter le mot spécifique trouvé dans la chaîne.

Article connexe - Python String