Cómo extraer números de una cadena en Python

Syed Moiz Haider 20 julio 2021
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 Haider avatar Syed Moiz Haider avatar

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

Artículo relacionado - Python String