Comment extraire des nombres d'une chaîne de caractèresen Python

Ce tutoriel explique comment obtenir des nombres à partir d’une chaîne en Python. Il donne également quelques exemples de codes pour clarifier davantage le concept en utilisant différentes approches.

Utiliser la compréhension des listes pour extraire des nombres d’une chaîne

Les nombres d’une chaîne peuvent être obtenus par simple compréhension de liste. La méthode split() est utilisée pour convertir une chaîne en une liste de caractères et la méthode isdigit() est utilisée pour vérifier si un chiffre est trouvé par l’itération.

Un exemple de code de base est donné comme suit :

temp_string = "Hi my age is 32 years and 250 days12"
print(temp_string)

numbers = [int(temp)for temp in temp_string.split() if temp.isdigit()]

print(numbers)

Production :

Hi my age is 32 years and 250 days12
[32, 250]

Cependant, ce code n’identifie pas les chiffres qui viennent avec l’alphabet.

Utilisez le module re pour extraire des nombres d’une chaîne de caractères

Le module re de Python fournit également des fonctions qui peuvent rechercher dans la chaîne de caractères et en extraire les résultats. Le module re fournit avec la méthode findall() qui retourne une liste de toutes les correspondances. Un exemple de code est donné ci-dessous :

import re

temp_string = "Hi my age is 32 years and 250.5 days12"
print(temp_string)
print([float(s) for s in re.findall(r'-?\d+\.?\d*', temp_string)])

Production :

Hi my age is 32 years and 250.5 days12
[32.0, 250.5, 12.0]

La solution RegEx fonctionne pour les nombres négatifs et positifs et surmonte le problème rencontré dans l’approche de compréhension de la liste.

Article connexe - Python String

  • Façons de supprimer xa0 d'une chaîne en Python
  • Obtenir la longueur et la taille de la chaîne en Python