Molte volte mentre lavori con Stringhe di pitone , abbiamo un problema in cui dobbiamo rimuovere determinati caratteri dalle stringhe. Ciò può avere applicazioni nella preelaborazione dei dati in Pitone .
Esempio
Input: 'Gfg, is best: for ! Geeks ;' Output: Gfg is best for Geeks Explanation: Here we can observe the difference between input and output we removed all the punctuation from the input and the ways to this is listed below to do that.>
Modi per rimuovere la punteggiatura da una stringa
Esistono molti modi per rimuovere la punteggiatura da una stringa, ma i principali sono elencati di seguito. Quindi esploriamoli uno per uno. Di seguito sono riportati i metodi che tratteremo in questo articolo:
rinominare la directory linux
- Rimuovi la punteggiatura da una stringa con Translate
- Rimuovi la punteggiatura da una stringa con un ciclo Python
- Rimuovi la virgola da una stringa con un ciclo Python
- Rimuovi la punteggiatura da una stringa con regex
- Utilizzo del ciclo for, della stringa di punteggiatura e dell'operatore non in
- Rimuovere la punteggiatura da una stringa con filter()
- Utilizzando il metodo replace()
Rimuovi la punteggiatura da una stringa con Translate
I primi due argomenti a favore string.translate è costituito da stringhe vuote e il terzo input è a Elenco Python della punteggiatura che dovrebbe essere rimossa. Questo indica al metodo Python di eliminare la punteggiatura da una stringa. Questo è uno dei i modi migliori per eliminare la punteggiatura da una stringa .
Python3
import> string> test_str> => 'Gfg, is best: for ! Geeks ;'> test_str> => test_str.translate> > (> str> .maketrans('> ', '> ', string.punctuation))> print> (test_str)> |
>
>
Produzione:
Gfg is best for Geeks>
Rimuovi la punteggiatura da una stringa con un ciclo Python
Questo è il modo brutale in cui questo compito può essere eseguito. In questo, controlliamo la punteggiatura utilizzando una stringa grezza che contiene la punteggiatura e quindi costruiamo una stringa rimuovendo tali punteggiatura.
Python3
un modulo completo
# initializing string> test_str> => 'Gfg, is best : for ! Geeks ;'> # printing original string> print> (> 'The original string is : '> +> test_str)> # initializing punctuations string> punc> => '''!()-[]{};:'',./?@#$%^&*_~'''> # Removing punctuations in string> # Using loop + punctuation string> for> ele> in> test_str:> > if> ele> in> punc:> > test_str> => test_str.replace(ele, '')> # printing result> print> (> 'The string after punctuation filter : '> +> test_str)> |
>
>
Produzione:
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Complessità temporale: SU)
Spazio ausiliario: O(n), dove n è il numero di caratteri nella stringa.
Rimuovi la virgola da una stringa con un ciclo Python
Questo è il modo brutale in cui questo compito può essere eseguito. In questo caso, controlliamo la virgola utilizzando una stringa grezza che contiene virgole e quindi costruiamo una stringa rimuovendo quelle virgole.
Python3
def> remove_commas(string):> > result> => ''> > for> char> in> string:> > if> char !> => ','> :> > result> +> => char> > return> result> > input_string> => 'GFG, is, the, best.'> output_string> => remove_commas(input_string)> print> (output_string)> |
>
>
Produzione:
GFG is the best>
Rimuovi la punteggiatura da una stringa con regex
La parte di sostituzione della punteggiatura può essere eseguita anche utilizzando espressione regolare . In questo, sostituiamo tutta la punteggiatura con una stringa vuota utilizzando una certa espressione regolare.
Python3
import> re> # initializing string> test_str> => 'Gfg, is best : for ! Geeks ;'> # printing original string> print> (> 'The original string is : '> +> test_str)> # Removing punctuations in string> # Using regex> res> => re.sub(r> '[^ws]'> , '', test_str)> # printing result> print> (> 'The string after punctuation filter : '> +> res)> |
>
tipo di data dattiloscritto
>
Produzione :
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Utilizzo del ciclo for, della stringa di punteggiatura e dell'operatore non in
Qui vedremo Rimuovere la punteggiatura nella stringa utilizzando loop + stringa di punteggiatura.
Python3
albero binario Java
# initializing string> test_str> => 'Gfg, is best : for ! Geeks ;'> # printing original string> print> (> 'The original string is : '> +> test_str)> # initializing punctuations string> punc> => '''!()-[]{};:'',./?@#$%^&*_~'''> res> => ' '> for> ele> in> test_str:> > if> ele> not> in> punc:> > res> +> => ele> > # printing result> print> (> 'The string after punctuation filter : '> +> res)> |
>
>Produzione
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
La complessità temporale e spaziale per tutti i metodi è la stessa:
Complessità temporale: SU)
Spazio ausiliario: SU)
Rimuovere la punteggiatura da una stringa con filter()
Il metodo filter() filtra gli elementi di una sequenza in base ad una determinata condizione.
In questo caso, possiamo utilizzare il metodo filter() e una funzione lambda per filtrare i caratteri di punteggiatura.
Python3
def> remove_punctuation(test_str):> # Using filter() and lambda function to filter out punctuation characters> > result> => ''.join(> filter> (> lambda> x: x.isalpha()> or> x.isdigit()> or> x.isspace(), test_str))> > return> result> test_str> => 'Gfg, is best : for ! Geeks ;'> print> (> 'The original string is : '> +> test_str)> result> => remove_punctuation(test_str)> print> (> 'The string after punctuation filter : '> +> result)> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>Produzione
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Complessità temporale: SU)
Spazio ausiliario: SU)
Rimozione della punteggiatura da una stringa utilizzando il metodo replace()
Importa il modulo stringa quindi inizializza la stringa di input e stampa la stringa originale. Passa in rassegna ogni carattere di punteggiatura nella costante di punteggiatura della stringa dopo aver utilizzato il metodo replace() per rimuovere ogni carattere di punteggiatura dalla stringa di input. e quindi stampa la stringa risultante dopo aver rimosso la punteggiatura.
esportare gimp in formato jpg
Python3
import> string> # initializing string> test_str> => 'Gfg, is best : for ! Geeks ;'> # printing original string> print> (> 'The original string is : '> +> test_str)> # Removing punctuations using replace() method> for> punctuation> in> string.punctuation:> > test_str> => test_str.replace(punctuation, '')> # printing result> print> (> 'The string after punctuation filter : '> +> test_str)> |
>
>Produzione
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Analisi della complessità temporale: O(len(string.punctuation) * len(test_str)) poiché il ciclo for scorre tutti i caratteri di punteggiatura nella costante string.punctuation, che richiede tempo O(len(string.punctuation)).
Analisi dello spazio ausiliario: O(1) . Poiché la stringa di input viene modificata sul posto, non è necessario spazio aggiuntivo per memorizzare il risultato.