Maison > développement back-end > Tutoriel Python > Comment puis-je extraire efficacement des nombres à virgule flottante à partir de chaînes en Python ?

Comment puis-je extraire efficacement des nombres à virgule flottante à partir de chaînes en Python ?

DDD
Libérer: 2024-11-25 10:00:15
original
1010 Les gens l'ont consulté

How Can I Efficiently Extract Floating-Point Numbers from Strings in Python?

Comment extraire des nombres à virgule flottante de chaînes avec précision

Dans certains scénarios, l'extraction de nombres à virgule flottante de chaînes est nécessaire. Par exemple, vous pouvez rencontrer des chaînes telles que « Niveau actuel : 13,4 dB ». où seule la valeur numérique est intéressante. Les expressions régulières (RegEx) offrent une solution simple pour cette tâche.

Approche RegEx

Si vos nombres à virgule flottante apparaissent toujours sous la forme « a.b », vous pouvez utilisez le modèle RegEx suivant :

re.findall("\d+\.\d+", "Current Level: 13.4db.")
Copier après la connexion

Ce modèle capturera toute séquence numérique contenant un ou plusieurs chiffres, suivis d'un point décimal, puis d'un ou plusieurs chiffres. plus de chiffres. Dans notre exemple, il renverra la chaîne « 13.4 ».

RegEx avancé pour une extraction robuste

Pour une plus grande flexibilité, considérez le modèle suivant :

re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3")
Copier après la connexion

Ce modèle gère une plus large gamme de représentations à virgule flottante, y compris :

  • Signes négatifs (-)
  • Nombres entiers (par exemple, "3")
  • Nombres sans virgule (par exemple, "13")

Il renverra une liste de tous les nombres correspondants : ['-13.2', '14.2', '3'].

Conversion directe pour validation

Vous pouvez également convertir directement un jeton en flottant pour valider la saisie de l'utilisateur :

user_input = "Current Level: 1e100 db"
for token in user_input.split():
    try:
        print(float(token), "is a float")
    except ValueError:
        print(token, "is something else")
Copier après la connexion

Ce code tente de convertir chaque jeton de la chaîne d'entrée en flottant et indique si le jeton est un flottant valide ou non.

En tirant parti de la méthode appropriée à vos besoins spécifiques, vous pouvez extraire efficacement des nombres à virgule flottante à partir de chaînes avec la précision et la flexibilité souhaitées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal