Velikokrat med delom z Python nizi , imamo težavo, pri kateri moramo odstraniti določene znake iz nizov. To ima lahko aplikacije v predobdelavi podatkov v Python .
Primer
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.>
Načini odstranjevanja ločil iz niza
Obstaja veliko načinov za odstranitev ločil iz niza, vendar so glavni navedeni spodaj. Zato jih raziščimo enega za drugim. Spodaj so metode, ki jih bomo obravnavali v tem članku:
slabosti interneta
- Odstranite ločila iz niza s prevajalnikom
- Odstranite ločila iz niza z zanko Python
- Odstranite vejico iz niza z zanko Python
- Odstranite ločila iz niza z regularnim izrazom
- Uporaba zanke for, niza ločil in ne v operatorju
- Odstranjevanje ločil iz niza s filter()
- Uporaba metode replace().
Odstranite ločila iz niza s prevajalnikom
Prva dva argumenta za string.translate metoda so prazni nizi, tretji vhod pa je a Seznam Python ločil, ki jih je treba odstraniti. To ukaže metodi Python, da odstrani ločila iz niza. To je eden od najboljši načini za odstranjevanje ločil iz niza .
Python3
import> string> test_str>=> 'Gfg, is best: for ! Geeks ;'> test_str>=> test_str.translate> >(>str>.maketrans('>', '>', string.punctuation))> print>(test_str)> |
>
>
Izhod:
Gfg is best for Geeks>
Odstranite ločila iz niza z zanko Python
To je brutalni način, na katerega je mogoče izvesti to nalogo. Pri tem preverimo ločila z neobdelanim nizom, ki vsebuje ločila, nato pa sestavimo niz, ki odstrani ta ločila.
Python3
vrste zanke for
# 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)> |
>
>
Izhod:
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Časovna zahtevnost: O(n)
Pomožni prostor: O(n), kjer je n število znakov v nizu.
Odstranite vejico iz niza z zanko Python
To je surov način, na katerega je mogoče opraviti to nalogo. Pri tem vejico preverimo z neobdelanim nizom, ki vsebuje vejice, nato pa sestavimo niz, ki odstrani te vejice.
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)> |
>
>
Izhod:
GFG is the best>
Odstranite ločila iz niza z regularnim izrazom
Del zamenjave ločil lahko izvedete tudi z uporabo regex . Pri tem zamenjamo vsa ločila s praznim nizom z uporabo določenega regularnega izraza.
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)> |
>
spremenljivke tipa java
>
Izhod:
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Uporaba zanke for, niza ločil in ne v operatorju
Tukaj bomo videli Odstranjevanje ločil v nizu z uporabo zanke + niz ločil.
Python3
koliko unč je 10 mililitrov
# 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)> |
>
>Izhod
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Časovna in prostorska kompleksnost za vse metode sta enaki:
Časovna zahtevnost: O(n)
Pomožni prostor: O(n)
Odstranjevanje ločil iz niza s filter()
Metoda filter() filtrira elemente zaporedja na podlagi danega pogoja.
V tem primeru lahko uporabimo metodo filter() in funkcijo lambda za filtriranje ločil.
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> |
>
>Izhod
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Časovna zahtevnost: O(n)
Pomožni prostor: O(n)
Odstranjevanje ločil iz niza z uporabo metode replace().
Uvozite modul niza, nato inicializirajte vhodni niz in natisnite izvirni niz. Preglejte vsako ločilo v konstanti ločila niza, potem ko ta uporabi metodo replace() za odstranitev vsakega ločila iz vhodnega niza. in nato natisnite dobljeni niz po odstranitvi ločil.
trenutni datum v Javi
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)> |
>
>Izhod
The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>
Analiza časovne kompleksnosti: O(len(string.punctuation) * len(test_str)) saj zanka for ponavlja vsa ločila v konstanti string.punctuation, kar traja O(len(string.punctuation)) časa.
Analiza pomožnega prostora: O(1) . Ker je vhodni niz spremenjen na mestu, zato za shranjevanje rezultata ni potreben dodaten prostor.