logo

Python | Eliminați semnele de punctuație din șir

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.