Pitone

Come dividere le stringhe in Python

Come dividere le stringhe in Python
Questo articolo spiegherà come dividere le stringhe in Python usando i metodi "split()" e "partition()". Questi metodi sono particolarmente utili se vuoi convertire una frase o un gruppo di parole in tipi Python analizzabili e iterabili. Tutti gli esempi di codice in questa guida sono testati con Python versione 3.8.6.

Metodo di divisione

Il metodo "split()" può essere utilizzato per dividere le parole utilizzando un separatore specificato dall'utente. Restituisce un elenco di parole divise senza includere il separatore. Se l'utente non specifica alcun separatore, gli spazi bianchi (uno o più) vengono utilizzati come separatore singolo.

Ad esempio, il codice seguente restituirà "['Linux', 'Hint']" come output:

text = "Suggerimento Linux"
testo.Diviso()

Il codice seguente restituirà "['LinuxHint', 'com']" come output quando ".” è usato come separatore:

text = "LinuxHint.com"
testo.Diviso(".”)

Il separatore non deve essere un singolo carattere. Il metodo split accetta due argomenti:

Entrambi questi argomenti sono opzionali. Come accennato in precedenza, se l'argomento "sep" non è specificato, lo spazio bianco viene utilizzato come separatore per la divisione. L'argomento "maxsplit" ha un valore predefinito di "-1" e divide tutte le occorrenze per impostazione predefinita. Considera il codice qui sotto:

text = "LinuxHint.co.noi"
testo.Diviso(".”)

Restituirà "['LinuxHint', 'co', 'us']” come output. Se vuoi interrompere la divisione alla prima occorrenza del separatore, specifica "1" come argomento "maxsplit".

text = "LinuxHint.co.noi"
testo.Diviso(".”, 1)

Il codice sopra restituirà "['LinuxHint', 'co.us']” come output. Basta specificare il numero di occorrenze in cui si desidera interrompere il processo di divisione come secondo argomento.

Nota che se ci sono separatori consecutivi, verrà restituita una stringa vuota per i separatori rimanenti dopo la prima divisione (quando l'argomento "maxsplit" non viene utilizzato):

testo = "LinuxHint… com"
testo.Diviso(".")

Il codice sopra restituirà "['LinuxHint', "," 'com']” come output. Nel caso in cui desideri rimuovere le stringhe vuote dall'elenco risultante, puoi utilizzare la seguente dichiarazione di comprensione dell'elenco:

testo = "LinuxHint… com"
risultato = testo.Diviso(".")
risultato = [oggetto per oggetto nel risultato se oggetto != ""]
stampa (risultato)

Otterrai "['LinuxHint', 'com']" come output dopo aver eseguito l'esempio di codice sopra.

Nota che il metodo "split()" si sposta da sinistra a destra per dividere le stringhe in parole. Se vuoi dividere la stringa da destra a sinistra, usa invece "rsplit()". La sua sintassi, utilizzo e argomenti sono esattamente gli stessi del metodo "split()".

Se non viene trovato alcun separatore nella stringa durante l'utilizzo dei metodi "split()" o "rsplit()", la stringa originale viene restituita come unico elemento dell'elenco.

Metodo di partizione

Il metodo “partition()” può essere utilizzato per dividere le stringhe e funziona in modo identico al metodo “split()” con alcune differenze. La differenza più notevoleèche mantiene il separatore e lo include come elemento nella tupla risultante contenente parole divise. Questo è particolarmente utile se vuoi dividere la stringa in un oggetto iterabile (in questo caso tupla) senza rimuovere alcun carattere originale. Considera il codice qui sotto:

text = "LinuxHint.com"
risultato = testo.partizione(".")
stampa (risultato)

L'esempio di codice sopra restituirà "('LinuxHint', '.', 'com')” come output. Se vuoi che il risultato sia di tipo elenco, usa invece il seguente esempio di codice:

text = "LinuxHint.com"
risultato = lista(testo.partizione("."))
stampa (risultato)

Dovresti ottenere "['LinuxHint', '.', 'com']” come output dopo aver eseguito l'esempio di codice sopra.

Il metodo "partition()" accetta un solo argomento chiamato "sep". Gli utenti possono specificare un separatore di qualsiasi lunghezza. A differenza del metodo “split()”, questo argomento è obbligatorio, quindi non puoi omettere il separatore. Tuttavia, puoi specificare uno spazio bianco come separatore.

Nota che il metodo di partizione si ferma alla prima occorrenza del separatore. Quindi, se la tua stringa contiene più separatori, il metodo "partition()" ignorerà tutte le altre occorrenze. Ecco un esempio che lo illustra:

text = "LinuxHint.co.noi"
risultato = lista(testo.partizione("."))
stampa (risultato)

L'esempio di codice produrrà “['LinuxHint', '.', 'co.us']” come output. Se vuoi dividere tutte le occorrenze del separatore e includere il separatore anche nell'elenco finale, potresti dover utilizzare un modello "Espressione regolare" o "RegEx". Per l'esempio sopra menzionato, puoi utilizzare un modello RegEx nel modo seguente:

importare re
text = "LinuxHint.co.noi"
risultato = re.Diviso("(\.)", testo)
stampa (risultato)

Otterrai "['LinuxHint', '.', 'co', '.', 'us']” come output dopo aver eseguito l'esempio di codice sopra. Il carattere punto è stato sfuggito nell'istruzione RegEx menzionata sopra. Nota che mentre l'esempio sopra funziona con un singolo carattere punto, potrebbe non funzionare con separatori complessi e stringhe complesse. Potrebbe essere necessario definire il proprio modello RegEx a seconda del caso d'uso. L'esempio è appena menzionato qui per darti un'idea del processo di conservazione del separatore nell'elenco finale usando le istruzioni RegEx.

Il metodo “partition()” a volte può lasciare stringhe vuote, specialmente quando il separatore non si trova nella stringa da dividere. In questi casi, puoi utilizzare le istruzioni di comprensione delle liste per rimuovere le stringhe vuote, come spiegato nella sezione del metodo "split()" sopra.

testo = "LinuxHint"
risultato = lista(testo.partizione("."))
risultato = [oggetto per oggetto nel risultato se oggetto != ""]
stampa (risultato)

Dopo aver eseguito il codice sopra, dovresti ottenere "['LinuxHint']" come output.

Conclusione

Per le divisioni semplici e dirette, puoi utilizzare i metodi "split()" e "partition()" per ottenere tipi iterabili. Per stringhe e separatori complessi, dovrai utilizzare le istruzioni RegEx.

Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...
Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...