De multe ori în timp ce lucrați cu Corzi Python , avem o problemă în care trebuie să eliminăm anumite caractere din șiruri. Acest lucru poate avea aplicații în preprocesarea datelor în Piton .
Exemplu
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.>
Modalități de a elimina semnele de punctuație dintr-un șir
Pot exista multe moduri de a elimina semnele de punctuație dintr-un șir, dar principalele sunt enumerate mai jos. Deci haideți să le explorăm unul câte unul. Mai jos sunt metodele pe care le vom acoperi în acest articol:
poze icloud pe Android
- Eliminați punctuația dintr-un șir cu Translate
- Eliminați punctuația dintr-un șir cu o buclă Python
- Eliminați virgula dintr-un șir cu o buclă Python
- Eliminați punctuația dintr-un șir cu expresii regex
- Folosind bucla for, șirul de punctuație și nu în operator
- Eliminarea punctuației dintr-un șir cu filter()
- Folosind metoda replace().
Eliminați punctuația dintr-un șir cu Translate
Primele două argumente pentru string.traducere metoda este șiruri goale, iar a treia intrare este a Lista Python de punctuația care ar trebui eliminată. Acest lucru indică metodei Python să elimine semnele de punctuație dintr-un șir. Acesta este unul dintre cele mai bune moduri de a elimina punctuația dintr-un șir .
Python3
import> string> test_str>=> 'Gfg, is best: for ! Geeks ;'> test_str>=> test_str.translate> >(>str>.maketrans('>', '>', string.punctuation))> print>(test_str)> |
>
>
Ieșire:
Gfg is best for Geeks>
Eliminați punctuația dintr-un șir cu o buclă Python
Acesta este modul de forță brută în care această sarcină poate fi îndeplinită. În aceasta, verificăm semnele de punctuație folosind un șir brut care conține semne de punctuație și apoi construim un șir care elimină acele punctuații.
Python3
# 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)> |
>
>
Ieșire:
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Complexitatea timpului: Pe)
Spatiu auxiliar: O(n), unde n este numărul de caractere din șir.
Eliminați virgula dintr-un șir cu o buclă Python
Acesta este modul brut în care această sarcină poate fi îndeplinită. În aceasta, verificăm virgula folosind un șir brut care conține virgule și apoi construim un șir care elimină acele virgule.
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)> |
tastatură pagina în jos
>
>
Ieșire:
GFG is the best>
Eliminați punctuația dintr-un șir cu expresii regex
Partea de înlocuire a punctuației poate fi, de asemenea, efectuată folosind regex . În aceasta, înlocuim toate semnele de punctuație cu un șir gol folosind o anumită expresie regex.
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)> |
cum se convertesc șirul în întregul java
>
>
Ieșire:
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Folosind bucla for, șirul de punctuație și nu în operator
Aici, vom vedea Eliminarea punctuațiilor din șir folosind bucla + șir de punctuație.
Python3
# 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)> |
>
>Ieșire
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Complexitatea timpului și spațiului pentru toate metodele sunt aceleași:
Complexitatea timpului: Pe)
Spatiu auxiliar: Pe)
Eliminarea punctuației dintr-un șir cu filter()
Metoda filter() filtrează elementele unei secvențe pe baza unei anumite condiții.
În acest caz, putem folosi metoda filter() și o funcție lambda pentru a filtra caracterele de punctuație.
Python3
intrare java
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> |
>
>Ieșire
string compara cu java
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Complexitatea timpului: Pe)
Spatiu auxiliar: Pe)
Eliminarea punctuației dintr-un șir folosind metoda înlocuire().
Importați modulul șir apoi inițializați șirul de intrare și imprimați șirul original. Buclă prin fiecare caracter de punctuație din constanta de punctuație șir după ce folosește metoda replace() pentru a elimina fiecare caracter de punctuație din șirul de intrare. și apoi tipăriți șirul rezultat după eliminarea semnelor de punctuație.
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)> |
>
>Ieșire
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Analiza complexității timpului: O(len(string.punctuation) * len(test_str)) deoarece bucla for iterează prin toate caracterele de punctuație din constanta string.punctuation, care ia timp O(len(string.punctuation)).
Analiza spațiului auxiliar: O(1) . Deoarece șirul de intrare este modificat în loc, deci nu este necesar spațiu suplimentar pentru stocarea rezultatului.