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 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