Estrai numeri da una stringa in Python

Syed Moiz Haider 20 luglio 2021
Estrai numeri da una stringa in Python

Questo tutorial spiega come ottenere numeri da una stringa in Python. Elenca anche alcuni codici di esempio per chiarire ulteriormente il concetto utilizzando approcci diversi.

Usa la comprensione della lista per estrarre i numeri da una stringa

I numeri di una stringa possono essere ottenuti mediante la semplice comprensione di una lista. Il metodo split() viene utilizzato per convertire una stringa in una lista di caratteri e il metodo isdigit() viene utilizzato per verificare se una cifra viene trovata attraverso l’iterazione.

Un esempio di codice di base viene fornito come:

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)

Produzione:

Hi my age is 32 years and 250 days12
[32, 250]

Tuttavia, questo codice non identifica i numeri forniti con gli alfabeti.

Usa il modulo re per estrarre numeri da una stringa

Il modulo re di Python fornisce anche funzioni che possono cercare nella stringa ed estrarre i risultati. Il modulo re fornisce il metodo findall() che restituisce una lista di tutte le corrispondenze. Di seguito viene fornito un codice di esempio:

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

Produzione:

Hi my age is 32 years and 250.5 days12
[32.0, 250.5, 12.0]

La soluzione RegEx funziona per numeri positivi e negativi e supera il problema riscontrato nell’approccio List Comprehension.

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

Articolo correlato - Python String