Dividi una stringa per spazi bianchi in Python

Rayven Esplanada 30 gennaio 2023
  1. Usa il metodo split() per dividere una stringa in Python
  2. Usa re.split() per dividere una stringa in Python
Dividi una stringa per spazi bianchi in Python

Questo tutorial dimostrerà come dividere una stringa per spazi bianchi come delimitatori in Python.

Dividere le stringhe in Python significa tagliare una singola stringa in un array di stringhe a seconda del delimitatore o del separatore utilizzato.

Ad esempio, se una stringa inizializzata come Hello, World! I am here. esiste, dividendolo con uno spazio bianco come delimitatore si otterrà il seguente output.

["Hello,", "World!", "I", "am", "here."]

Usa il metodo split() per dividere una stringa in Python

Il metodo di stringa Python incorporato split() è una soluzione perfetta per dividere le stringhe usando spazi bianchi. Per impostazione predefinita, il metodo split() restituisce un array di sottostringhe risultanti dalla divisione della stringa originale utilizzando uno spazio bianco come delimitatore.

Ad esempio, utilizziamo lo stesso esempio di stringa Hello, World! I am here.. Useremo il metodo split() per separare la stringa in un array di sottostringhe.

string_list = "Hello, World! I am here.".split()

print(string_list)

L’output è come previsto:

["Hello,", "World!", "I", "am", "here."]

Oltre a ciò, il metodo split() rimuove automaticamente anche gli spazi bianchi iniziali e finali e li tratta come un unico delimitatore di spazi bianchi.

Modifichiamo l’esempio precedente per includere spazi bianchi iniziali, finali e consecutivi casuali.

string_list = "      Hello,   World! I am     here.   ".split()

print(string_list)

Un altro scenario che il metodo split() gestisce automaticamente sono le tabulazioni, i ritorni a capo e i ritorni a capo indicati con \t, \n e \r oltre agli spazi vuoti letterali. I formati di spazi bianchi menzionati sono anche considerati delimitatori e soggetti da ritagliare.

Produzione:

['Hello,', 'World!', 'I', 'am', 'here.']

Per esempio:

string_list = " Hello,   World! I am here.\nI am also\there too,\rand here.".split()

print(string_list)

Produzione:

['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'also', 'here', 'too,', 'and', 'here.']

Considerando questi fattori, non devi preoccuparti di tagliare esplicitamente ogni spazio bianco prima di eseguire la funzione. Questa è una funzionalità utile da avere.

Usa re.split() per dividere una stringa in Python

Il modulo Python RegEx (espressioni regolari) re ha anche una funzione predefinita split() che possiamo usare al posto del metodo split() integrato. Tuttavia, nota che re.split() è più lento rispetto al metodo integrato split() dal punto di vista delle prestazioni.

La funzione re.split() accetta due parametri principali, una stringa RegEx e la stringa per eseguire la funzione split. La parola chiave RegEx che rappresenta gli spazi bianchi è \s. \s è una collazione di ogni tipo di spazio bianco, compresi quelli menzionati sopra (\n, \t, \r, \f).

Ad esempio, dichiara una stringa ed esegui re.split() per dividerla in un array di sottostringhe. Per prendere in considerazione gli spazi vuoti finali e iniziali, aggiungere un segno + alla stringa RegEx per far corrispondere uno o più spazi bianchi consecutivi come un singolo gruppo.

Inoltre, aggiungi la parola chiave r alla stringa RegEx per assicurarti che Python elabori le sequenze di escape in modo appropriato.

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.split(r"\s+", exStr))

Usa re.findall() invece di re.split() per dividere una stringa in Python

In alternativa, si può usare anche re.findall(). La funzione findall() funziona al contrario di split(). Questa funzione trova tutte le sottostringhe che corrispondono alla stringa RegEx data, mentre il metodo split() usa la stringa RegEx come delimitatore.

Per usare la funzione findall() per dividere la stringa usando uno spazio bianco, nega la parola chiave dello spazio bianco \s mettendo in maiuscolo la lettera (\S). findall() accetta gli stessi parametri di split().

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.findall(r"\S+", exStr))

Entrambe le funzioni produrranno lo stesso Output:

['Hello,', 'World!', 'Welcome', 'to', 'my', 'tutorial', 'article.']

In sintesi, il modo migliore e più ottimale per dividere una stringa usando gli spazi bianchi come delimitatore è il metodo split() incorporato. È collegato all’oggetto stringa e considera gli spazi bianchi iniziali e finali per impostazione predefinita. Anche l’utilizzo di questo non richiede alcuna conoscenza delle espressioni regolari.

Altrimenti, re.split() e re.findall() possono essere usati come sostituti del metodo split(), sebbene entrambe le funzioni siano più lente del metodo integrato split().

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Articolo correlato - Python String