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.