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