logo

Python | Fjern tegnsetting fra streng

Mange ganger mens du jobber med Python-strenger , har vi et problem der vi må fjerne visse tegn fra strenger. Dette kan ha applikasjoner i dataforbehandling i Python .

Eksempel



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

Måter å fjerne tegnsetting fra en streng

Det kan være mange måter å fjerne tegnsettingen fra en streng, men de viktigste er listet opp nedenfor. Så la oss utforske dem én etter én. Nedenfor er metodene vi vil dekke i denne artikkelen:

helbrede verktøy gimp
  • Fjern tegnsetting fra en streng med Translate
  • Fjern tegnsetting fra en streng med en Python-løkke
  • Fjern komma fra en streng med en Python-løkke
  • Fjern tegnsetting fra en streng med regulært uttrykk
  • Bruker for loop, tegnsettingsstreng og ikke i operator
  • Fjerne tegnsetting fra en streng med filter()
  • Bruker erstatte()-metoden

Fjern tegnsetting fra en streng med Translate

De to første argumentene for string.translate metoden er tomme strenger, og den tredje inngangen er en Python-liste av tegnsettingen som bør fjernes. Dette instruerer Python-metoden for å eliminere tegnsetting fra en streng. Dette er en av beste måtene å fjerne tegnsetting fra en streng .

Python3








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

>

>

Produksjon:

Gfg is best for Geeks>

Fjern tegnsetting fra en streng med en Python-løkke

Dette er den brute-force måten denne oppgaven kan utføres på. I dette ser vi etter tegnsettingene ved å bruke en råstreng som inneholder tegnsettinger, og så konstruerer vi en streng som fjerner disse tegnsettingene.

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

>

>

Produksjon:

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

Tidskompleksitet: På)
Ekstra plass: O(n), hvor n er antall tegn i strengen.

Fjern komma fra en streng med en Python-løkke

Dette er den brutale måten denne oppgaven kan utføres på. I dette sjekker vi for komma ved å bruke en råstreng som inneholder komma, og så konstruerer vi en streng som fjerner disse kommaene.

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

>

>

Produksjon:

GFG is the best>

Fjern tegnsetting fra en streng med regulært uttrykk

Delen av å erstatte tegnsetting kan også utføres ved hjelp av regulært uttrykk . I dette erstatter vi all tegnsetting med en tom streng ved å bruke et bestemt regex.

Python3


tøm npm cache



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

>

>

Utgang:

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

Bruker for loop, tegnsettingsstreng og ikke i operator

Her vil vi se Fjerne tegnsetting i streng ved hjelp av loop + tegnsettingsstreng.

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

>

>

java objektlikhet
Produksjon

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

Tids- og romkompleksiteten for alle metodene er den samme:

Tidskompleksitet: På)
Ekstra plass: På)

Fjerne tegnsetting fra en streng med filter()

Filter()-metoden filtrerer elementene i en sekvens basert på en gitt betingelse.
I dette tilfellet kan vi bruke filter()-metoden og en lambda-funksjon for å filtrere ut tegnsettingstegn.

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>

>

>

Produksjon

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

Tidskompleksitet: På)
Ekstra plass: På)

Fjerne tegnsetting fra en streng ved å bruke erstatte()-metoden

Importer strengmodulen, initialiser deretter inndatastrengen og skriv ut den originale strengen. Gå gjennom hvert tegnsettingstegn i strengens tegnsettingskonstanten etter at den bruker erstatte()-metoden for å fjerne hvert tegnsettingstegn fra inndatastrengen. og skriv deretter ut den resulterende strengen etter å ha fjernet tegnsetting.

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

>

java oppslag

>

Produksjon

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

Tidskompleksitetsanalyse: O(len(string.interpunctuation) * len(test_str)) ettersom for-løkken itererer gjennom alle tegnsettingstegnene i string.punctuation-konstanten, som tar O(len(string.punctuation)) tid.

Analyse av hjelperom: O(1) . Fordi inndatastrengen er modifisert på plass, er det ikke nødvendig med ekstra plass for å lagre resultatet.