Números extraídos de uma string em Python

Syed Moiz Haider 20 julho 2021
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 re 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.

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

Artigo relacionado - Python String