Come dividere le corde in Python

Come dividere le corde in Python
Questo articolo spiegherà come dividere le stringhe in Python usando i metodi "Split ()" e "Partition ()". Questi metodi sono particolarmente utili se si desidera convertire una frase o un gruppo di parole in tipi di Python devali e iterabili. Tutti i campioni di codice in questa guida sono testati con Python versione 3.8.6.

Metodo diviso

Il metodo "Split ()" può essere utilizzato per dividere le parole usando un separatore specificato dall'utente. Restituisce un elenco di parole divise senza includere il separatore. Se non viene specificato alcun separatore dall'utente, lo spazio bianco (uno o più) viene utilizzato come singolo separatore.

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

text = "Linux suggerisce"
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 diviso richiede due argomenti:

  • SEP: separatore da utilizzare per la divisione
  • maxsplit: numero di divisioni da fare

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

text = "linuxhint.co.noi"
testo.diviso(".")

Restituirà "[" Linuxhint "," co "," us "" come output. Se si desidera interrompere la divisione alla prima occorrenza del separatore, specificare "1" come argomento "maxsplit".

text = "linuxhint.co.noi"
testo.diviso(".", 1)

Il codice sopra restituirà "['Linuxhint', 'co.noi '] "come output. Basta specificare il numero di occorrenze in cui si desidera che il processo di divisione si fermi come secondo argomento.

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

text = "linuxhint ... com"
testo.diviso(".")

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

text = "linuxhint ... com"
risultato = testo.diviso(".")
risultato = [elemento per elemento in risultato se articolo != ""]
Stampa (risultato)

Otterrai "['Linuxhint', 'com']” come output dopo l'esecuzione del campione di codice sopra.

Si noti che il metodo "split ()" si sposta da sinistra a destra a sciolte in parole. Se si desidera dividere la stringa da destra a sinistra, usa invece "rsplit ()". La sua sintassi, uso e argomenti sono esattamente uguali del metodo "split ()".

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

Metodo di partizione

Il metodo "Partition ()" può essere utilizzato per dividere le stringhe e funziona 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. Ciò è particolarmente utile se si desidera dividere la stringa in un oggetto iterabile (tupla in questo caso) senza rimuovere i caratteri originali. Considera il codice seguente:

text = "linuxhint.com "
risultato = testo.partizione(".")
Stampa (risultato)

Il campione di codice sopra restituirà "(" LinuxHint ",".',' com ') ”come output. Se si desidera che il risultato sia del tipo di elenco, utilizzare invece il seguente campione di codice:

text = "linuxhint.com "
risultato = elenco (testo.partizione("."))
Stampa (risultato)

Dovresti ottenere "[" Linuxhint ",".',' com '] ”come output dopo l'esecuzione del campione di codice sopra.

Il metodo "Partition ()" prende solo un 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, è possibile specificare lo spazio bianco come separatore.

Si noti che il metodo di partizione si interrompe alla prima occorrenza del separatore. Quindi, se la stringa contiene più separatori, il metodo "partizione ()" ignorerà tutte le altre occorrenze. Ecco un esempio che illustra questo:

text = "linuxhint.co.noi"
risultato = elenco (testo.partizione("."))
Stampa (risultato)

Il campione di codice produrrà "[" Linuxhint ",".',' co.noi '] "come output. Se si desidera dividere a tutte le occorrenze del separatore e includere anche il separatore nell'elenco finale, potrebbe essere necessario utilizzare un modello di "espressione regolare" o "regex". Per l'esempio sopra menzionato, è possibile utilizzare un modello di regex nel modo seguente:

importazione re
text = "linuxhint.co.noi"
risultato = re.diviso("(\.)", testo)
Stampa (risultato)

Otterrai "[" Linuxhint ",".',' co ','.',' US '] ”come output dopo l'esecuzione del campione di codice sopra. Il personaggio DOT è stato sfuggito alla dichiarazione di regex sopra menzionata. Si noti che mentre l'esempio sopra funziona con un singolo carattere a punto, potrebbe non funzionare con separatori complessi e stringhe complesse. Potrebbe essere necessario definire il tuo modello di regex a seconda del caso d'uso. L'esempio è appena menzionato qui per darti un'idea del processo di trattenimento del separatore nell'elenco finale usando le istruzioni Regex.

Il metodo "Partition ()" a volte può lasciare stringhe vuote, specialmente quando il separatore non viene trovato nella stringa da dividere. In tali casi, è possibile utilizzare le istruzioni di comprensione dell'elenco per rimuovere le stringhe vuote, come spiegato nella sezione Metodo "Split ()" sopra.

text = "linuxhint"
risultato = elenco (testo.partizione("."))
risultato = [elemento per elemento in risultato se articolo != ""]
Stampa (risultato)

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

Conclusione

Per le divisioni semplici e semplici, è possibile utilizzare i metodi "Split ()" e "Partition ()" per ottenere tipi iterabili. Per stringhe e separatori complessi, dovrai utilizzare le dichiarazioni Regex.