Cómo extraer números de una cadena en Python
Este tutorial explica cómo obtener números de una cadena en Python. También enumera algunos códigos de ejemplo para aclarar más el concepto utilizando diferentes enfoques.
Usar la comprensión de listas para extraer números de una cadena
Los números de una cadena se pueden obtener por simple comprensión de la lista. El método split()
se utiliza para convertir una cadena en una lista de caracteres y el método isdigit()
se utiliza para comprobar si un dígito se encuentra a través de la iteración.
Un ejemplo de código base se da como:
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)
Resultado:
Hi my age is 32 years and 250 days12
[32, 250]
Sin embargo, este código no identifica los números que vienen con los alfabetos.
Use el módulo re
para extraer números de una cadena
El módulo re
de Python también proporciona funciones que pueden buscar a través de la cadena y extraer resultados. El módulo re
provee un método findall()
que devuelve una lista de todas las coincidencias. A continuación se muestra un código de ejemplo:
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)])
Resultado:
Hi my age is 32 years and 250.5 days12
[32.0, 250.5, 12.0]
La solución RegEx
funciona para números negativos y positivos y supera el problema encontrado en el enfoque de la comprensión de la lista.
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