logo

Python | Ta bort skiljetecken från strängen

Många gånger när man arbetar med Pythonsträngar , vi har ett problem där vi måste ta bort vissa tecken från strängar. Detta kan ha applikationer i dataförbehandling i Pytonorm .

Exempel



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

Sätt att ta bort skiljetecken från en sträng

Det kan finnas många sätt att ta bort skiljetecken från en sträng, men de viktigaste är listade nedan. Så låt oss utforska dem en efter en. Nedan är metoderna som vi kommer att täcka i den här artikeln:

ta bort npm-cache
  • Ta bort interpunktion från en sträng med Translate
  • Ta bort interpunktion från en sträng med en Python-loop
  • Ta bort komma från en sträng med en Python-loop
  • Ta bort interpunktion från en sträng med regex
  • Används för loop, interpunktionssträng och inte i operatorn
  • Ta bort skiljetecken från en sträng med filter()
  • Använder metoden replace().

Ta bort interpunktion från en sträng med Translate

De två första argumenten för string.translate metoden är tomma strängar och den tredje ingången är en Python lista av skiljetecken som bör tas bort. Detta instruerar Python-metoden att eliminera interpunktion från en sträng. Detta är en av bästa sätten att ta bort skiljetecken från en sträng .

Python3








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

>

>

Produktion:

Gfg is best for Geeks>

Ta bort interpunktion från en sträng med en Python-loop

Detta är det brute-force sätt på vilket denna uppgift kan utföras. I detta kontrollerar vi efter skiljetecken med hjälp av en rå sträng som innehåller skiljetecken och sedan konstruerar vi en sträng som tar bort dessa skiljetecken.

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

>

>

Produktion:

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

Tidskomplexitet: På)
Extra utrymme: O(n), där n är antalet tecken i strängen.

Ta bort kommatecken från en sträng med en Python-loop

Detta är det brutala sättet på vilket denna uppgift kan utföras. I det här kontrollerar vi efter kommatecken med hjälp av en råsträng som innehåller kommatecken och sedan konstruerar vi en sträng som tar bort dessa kommatecken.

Python3




solig deol ålder

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

>

>

Produktion:

GFG is the best>

Ta bort interpunktion från en sträng med regex

Delen av att ersätta skiljetecken kan också utföras med hjälp av regex . I detta ersätter vi alla skiljetecken med en tom sträng med ett visst regex.

Python3


programmering i c-matriser



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

>

>

Utgång:

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

Används för loop, interpunktionssträng och inte i operatorn

Här kommer vi att se Ta bort skiljetecken i sträng med loop + skiljeteckensträng.

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

>

>

Produktion

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

Tids- och rumskomplexiteten för alla metoder är densamma:

Tidskomplexitet: På)
Extra utrymme: På)

Ta bort skiljetecken från en sträng med filter()

Metoden filter() filtrerar elementen i en sekvens baserat på ett givet villkor.
I det här fallet kan vi använda metoden filter() och en lambda-funktion för att filtrera bort skiljetecken.

Python3


selen handledning java



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>

>

linux operativsystem
>

Produktion

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

Tidskomplexitet: På)
Extra utrymme: På)

Ta bort interpunktion från en sträng med metoden replace().

Importera strängmodulen och initiera sedan inmatningssträngen och skriv ut originalsträngen. Gå igenom varje skiljetecken i strängens interpunktionkonstanten efter att den använder metoden replace() för att ta bort varje skiljetecken från inmatningssträngen. och skriv sedan ut den resulterande strängen efter att ha tagit bort skiljetecken.

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

>

>

Produktion

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

Tidskomplexitetsanalys: O(len(string.interpunctuation) * len(test_str)) eftersom for-loopen itererar genom alla skiljetecken i string.punctuation-konstanten, vilket tar O(len(string.interpunctuation)) tid.

Auxiliary Space Analysis: O(1) . Eftersom inmatningssträngen är modifierad på plats, så krävs inget extra utrymme för att lagra resultatet.