logo

Python | Verwijder interpunctie uit de tekenreeks

Vele malen tijdens het werken met Python-snaren , hebben we een probleem waarbij we bepaalde tekens uit strings moeten verwijderen. Dit kan toepassingen hebben bij de voorverwerking van gegevens in de Python .

Voorbeeld



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

Manieren om interpunctie uit een tekenreeks te verwijderen

Er kunnen veel manieren zijn om de interpunctie uit een tekenreeks te verwijderen, maar de belangrijkste worden hieronder vermeld. Laten we ze dus een voor een verkennen. Hieronder staan ​​​​de methoden die we in dit artikel zullen behandelen:

tekenreeks bouwer
  • Verwijder interpunctie uit een tekenreeks met Translate
  • Verwijder interpunctie uit een string met een Python-lus
  • Verwijder komma uit een string met een Python-lus
  • Verwijder interpunctie uit een string met regex
  • Gebruik for-lus, leestekenreeks en niet in operator
  • Interpunctie uit een tekenreeks verwijderen met filter()
  • De methode Replace() gebruiken

Verwijder interpunctie uit een tekenreeks met Translate

De eerste twee argumenten voor string.vertalen methode is lege strings, en de derde invoer is a Python-lijst van de leestekens die verwijderd moeten worden. Dit instrueert de Python-methode om interpunctie uit een string te verwijderen. Dit is een van de beste manieren om interpunctie uit een tekenreeks te verwijderen .

Python3








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

>

>

Uitgang:

Gfg is best for Geeks>

Verwijder interpunctie uit een string met een Python-lus

Dit is de brute-force manier waarop deze taak kan worden uitgevoerd. Hierin controleren we de leestekens met behulp van een onbewerkte tekenreeks die leestekens bevat en vervolgens construeren we een tekenreeks die deze leestekens verwijdert.

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

>

>

Uitgang:

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

Tijdcomplexiteit: Op)
Hulpruimte: O(n), waarbij n het aantal tekens in de string is.

Verwijder de komma uit een string met een Python-lus

Dit is de brute manier waarop deze taak kan worden uitgevoerd. Hierin controleren we op de komma met behulp van een onbewerkte tekenreeks die komma's bevat, en vervolgens construeren we een tekenreeks die deze komma's verwijdert.

lente wolk

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

>

c++ splitsreeks
>

Uitgang:

GFG is the best>

Verwijder interpunctie uit een string met regex

Het deel van het vervangen van interpunctie kan ook worden uitgevoerd met behulp van regex . Hierin vervangen we alle interpunctie door een lege string met behulp van een bepaalde regex.

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

>

>

Uitgang:

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

Gebruik for-lus, leestekenreeks en niet in operator

Hier zullen we zien dat leestekens in de tekenreeks worden verwijderd met behulp van lus + leestekenreeks.

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

>

>

Uitvoer

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

De tijd- en ruimtecomplexiteit voor alle methoden is hetzelfde:

converteer een int naar een string-java

Tijdcomplexiteit: Op)
Hulpruimte: Op)

Interpunctie uit een tekenreeks verwijderen met filter()

De methode filter() filtert de elementen van een reeks op basis van een bepaalde voorwaarde.
In dit geval kunnen we de methode filter() en een lambda-functie gebruiken om leestekens eruit te filteren.

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>

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

Interpunctie uit een tekenreeks verwijderen met behulp van de methode Replace().

Importeer de stringmodule, initialiseer vervolgens de invoerstring en druk de originele string af. Loop door elk leesteken in de leesconstante van de tekenreeks nadat de methode Replace() is gebruikt om elk leesteken uit de invoertekenreeks te verwijderen. en druk vervolgens de resulterende tekenreeks af na het verwijderen van leestekens.

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

>

>

Actrice Rakul Preet Singh
Uitvoer

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

Tijdcomplexiteitsanalyse: O(len(string.punctuation) * len(test_str)) terwijl de for-lus alle leestekens in de constante string.punctuation doorloopt, wat O(len(string.punctuation)) tijd kost.

Hulpruimteanalyse: O(1) . Omdat de invoerstring ter plekke wordt aangepast, is er dus geen extra ruimte nodig voor het opslaan van het resultaat.