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.
Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.
LinkedIn