logo

Python | Odstráňte interpunkciu z reťazca

Mnohokrát pri práci s Python reťazce , máme problém, v ktorom potrebujeme odstrániť určité znaky z reťazcov. To môže mať aplikácie v predspracovaní údajov v Python .

Príklad



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

Spôsoby, ako odstrániť interpunkciu z reťazca

Existuje mnoho spôsobov, ako odstrániť interpunkciu z reťazca, ale hlavné sú uvedené nižšie. Poďme ich teda preskúmať jeden po druhom. Nižšie sú uvedené metódy, ktorým sa budeme venovať v tomto článku:

podmienený operátor v jazyku Java
  • Odstráňte interpunkciu z reťazca pomocou funkcie Translate
  • Odstráňte interpunkciu z reťazca pomocou slučky Python
  • Odstráňte čiarku z reťazca pomocou slučky Python
  • Odstráňte interpunkciu z reťazca pomocou regulárneho výrazu
  • Používa sa slučka for, reťazec interpunkcie a nie operátor
  • Odstránenie interpunkcie z reťazca pomocou filtra ()
  • Pomocou metódy replace()

Odstráňte interpunkciu z reťazca pomocou funkcie Translate

Prvé dva argumenty pre reťazec.preložiť metóda sú prázdne reťazce a tretí vstup je a Zoznam Python interpunkcie, ktorá by sa mala odstrániť. Toto prikazuje metóde Python odstrániť interpunkciu z reťazca. Toto je jeden z najlepšie spôsoby, ako odstrániť interpunkciu z reťazca .

Python3








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

>

>

Výkon:

Gfg is best for Geeks>

Odstráňte interpunkciu z reťazca pomocou slučky Python

Toto je spôsob hrubej sily, ktorým možno túto úlohu vykonať. V tomto prípade kontrolujeme interpunkciu pomocou nespracovaného reťazca, ktorý obsahuje interpunkčné znamienka, a potom vytvoríme reťazec, ktorý tieto interpunkčné znamienka odstráni.

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

>

>

Výkon:

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

Časová zložitosť: O(n)
Pomocný priestor: O(n), kde n je počet znakov v reťazci.

Odstráňte čiarku z reťazca pomocou slučky Python

Toto je brutálny spôsob, akým možno túto úlohu vykonať. V tomto prípade skontrolujeme čiarku pomocou surového reťazca, ktorý obsahuje čiarky, a potom vytvoríme reťazec, ktorý tieto čiarky odstráni.

t ff

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

>

trieda vs objekt v jave
>

Výkon:

GFG is the best>

Odstráňte interpunkciu z reťazca pomocou regulárneho výrazu

Časť nahradenia interpunkcie možno vykonať aj pomocou regulárny výraz . V tomto nahradíme všetku interpunkciu prázdnym reťazcom pomocou určitého regulárneho výrazu.

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

>

>

Výkon :

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

Používa sa slučka for, reťazec interpunkcie a nie operátor

Tu uvidíme Odstránenie interpunkčných znamienok v reťazci pomocou slučky + interpunkčného reťazca.

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

>

>

Výkon

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

Časová a priestorová zložitosť pre všetky metódy je rovnaká:

abstraktná trieda v jazyku Java

Časová zložitosť: O(n)
Pomocný priestor: O(n)

Odstránenie interpunkcie z reťazca pomocou filtra ()

Metóda filter() filtruje prvky sekvencie na základe danej podmienky.
V tomto prípade môžeme použiť metódu filter() a funkciu lambda na odfiltrovanie interpunkčných znakov.

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>

>

>

Výkon

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

Časová zložitosť: O(n)
Pomocný priestor: O(n)

Odstránenie interpunkcie z reťazca pomocou metódy replace().

Importujte modul reťazca, potom inicializujte vstupný reťazec a vytlačte pôvodný reťazec. Prechádzajte cez každý interpunkčný znak v interpunkčnej konštante reťazca potom, čo použije metódu replace() na odstránenie každého interpunkčného znaku zo vstupného reťazca. a potom vytlačte výsledný reťazec po odstránení interpunkcie.

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

>

>

ako skontrolovať veľkosť obrazovky monitora
Výkon

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

Analýza časovej zložitosti: O(len(reťazec.interpunkcia) * dĺžka(test_str)) ako cyklus for iteruje cez všetky interpunkčné znaky v reťazci.interpunkčná konštanta, ktorá trvá O(len(reťazec.interpunkcia)) čas.

Analýza pomocného priestoru: O(1) . Pretože vstupný reťazec je upravený na mieste, nie je potrebný žiadny ďalší priestor na uloženie výsledku.