logo

Python | Pašalinkite skyrybos ženklus iš eilutės

Daug kartų dirbant su Python eilutės , turime problemą, kai turime pašalinti tam tikrus simbolius iš eilučių. Tai gali turėti programų išankstiniam duomenų apdorojimui Python .

Pavyzdys



  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.>

Būdai, kaip pašalinti skyrybos ženklus iš eilutės

Skyrybos ženklus iš eilutės galima pašalinti įvairiais būdais, tačiau pagrindiniai yra išvardyti toliau. Taigi tyrinėkime juos po vieną. Žemiau pateikiami metodai, kuriuos aptarsime šiame straipsnyje:

metų buvo išrastas kompiuteris
  • Pašalinkite skyrybos ženklus iš eilutės naudodami vertimą
  • Pašalinkite skyrybos ženklus iš eilutės naudodami Python kilpą
  • Pašalinkite kablelį iš eilutės naudodami Python kilpą
  • Pašalinkite skyrybos ženklus iš eilutės naudodami reguliarųjį reiškinį
  • Naudojama cikle, skyrybos eilutė, o ne operatore
  • Skyrybos ženklų pašalinimas iš eilutės su filtru ()
  • Naudojant Keisti() metodą

Pašalinkite skyrybos ženklus iš eilutės naudodami vertimą

Pirmieji du argumentai už eilutė.išversti metodas yra tuščios eilutės, o trečioji įvestis yra a Python sąrašas skyrybos ženklų, kuriuos reikia pašalinti. Tai nurodo Python metodui pašalinti iš eilutės skyrybos ženklus. Tai vienas iš geriausi būdai pašalinti skyrybos ženklus iš eilutės .

Python3








import> string> test_str>=> 'Gfg, is best: for ! Geeks ;'> test_str>=> test_str.translate> >(>str>.maketrans('>', '>', string.punctuation))> print>(test_str)>

>

>

Išvestis:

Gfg is best for Geeks>

Pašalinkite skyrybos ženklus iš eilutės naudodami Python kilpą

Tai yra brutalus būdas, kuriuo ši užduotis gali būti atliekama. Čia patikriname, ar nėra skyrybos ženklų, naudodami neapdorotą eilutę, kurioje yra skyrybos ženklų, ir tada sukuriame eilutę, pašalindami tuos skyrybos ženklus.

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)>

>

>

Išvestis:

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n), kur n yra simbolių skaičius eilutėje.

Pašalinkite kablelį iš eilutės naudodami Python kilpą

Tai šiurkštus būdas atlikti šią užduotį. Čia mes patikriname, ar nėra kablelio, naudodami neapdorotą eilutę, kurioje yra kableliai, ir tada sukuriame eilutę, pašalindami tuos kablelius.

Python3




paryškinkite tekstą css

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)>

>

>

Išvestis:

GFG is the best>

Pašalinkite skyrybos ženklus iš eilutės naudodami reguliarųjį reiškinį

Skyrybos ženklų pakeitimo dalis taip pat gali būti atliekama naudojant reguliarioji išraiška . Šiuo atveju mes pakeičiame visus skyrybos ženklus tuščia eilute, naudodami tam tikrą reguliarųjį reiškinį.

Python3


java ilgas iki eilutės



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)>

>

>

Išvestis:

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Naudojama cikle, skyrybos eilutė, o ne operatore

Čia pamatysime skyrybos ženklų pašalinimą iš eilutės naudojant kilpą + skyrybos eilutę.

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)>

mylivecricket

>

>

Išvestis

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Visų metodų laiko ir erdvės sudėtingumas yra vienodas:

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)

Skyrybos ženklų pašalinimas iš eilutės su filtru ()

Filtro() metodas filtruoja sekos elementus pagal tam tikrą sąlygą.
Šiuo atveju skyrybos simboliams filtruoti galime naudoti filtro () metodą ir lambda funkciją.

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>

>

seleno pamoka java
>

Išvestis

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)

Skyrybos ženklų pašalinimas iš eilutės naudojant 'replace()' metodą

Importuokite eilutės modulį, tada inicijuokite įvesties eilutę ir išspausdinkite pradinę eilutę. Pereikite kiekvieną skyrybos ženklą eilutės skyrybos konstantoje po to, kai jis naudoja „replace()“ metodą, kad pašalintų kiekvieną skyrybos ženklą iš įvesties eilutės. ir pašalinę skyrybos ženklus atspausdinkite gautą eilutę.

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)>

>

>

Išvestis

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Laiko sudėtingumo analizė: O(len(string.punctuation) * len(test_str)) kaip ciklas for kartojasi per visus skyrybos ženklus eilutėje.skyrybos konstanta, kuriai reikia O(len(string.punctuation)) laiko.

Pagalbinės erdvės analizė: O(1) . Kadangi įvesties eilutė yra modifikuota vietoje, todėl rezultatui saugoti nereikia papildomos vietos.