Números extraídos de uma string em Python

Este tutorial explica como obter números a partir de uma string em Python. Também enumera alguns exemplos de códigos para clarificar ainda mais o conceito, utilizando diferentes abordagens.

Utilizar a Compreensão da Lista para extrair números de uma string

Os números de uma string podem ser obtidos por simples compreensão de lista. O método split() é utilizado para converter a string numa lista de caracteres e o método isdigit() é utilizado para verificar se um dígito é encontrado através da iteração.

É dado um exemplo de código base 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]

No entanto, este código não identifica números que vêm com alfabetos.

Utilize o RegEx Módulo para extrair números de uma string

O módulo re de Python também fornece funções que podem pesquisar através da string e extrair resultados. O módulo re fornece o método findall() que devolve uma lista de todos os resultados. Um código de exemplo é dado abaixo:

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]

A solução RegEx funciona tanto para números negativos como positivos e supera o problema encontrado na abordagem de Compreensão de Lista.

Artigo relacionado - Python String

  • Como Converter Bytes em Strings em Python 2 e Python 3
  • Remover o último caractere da string em Python