logo

Pythona | Usuń znaki interpunkcyjne z ciągu

Wiele razy podczas pracy z Ciągi Pythona , mamy problem polegający na tym, że musimy usunąć pewne znaki z ciągów. Może to mieć zastosowanie w przetwarzaniu wstępnym danych w plikach Pyton .

Przykład



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

Sposoby usuwania znaków interpunkcyjnych z ciągu znaków

Istnieje wiele sposobów usunięcia znaków interpunkcyjnych z ciągu, ale najważniejsze z nich są wymienione poniżej. Przeanalizujmy je więc jeden po drugim. Poniżej znajdują się metody, które omówimy w tym artykule:

Linux, który
  • Usuń znaki interpunkcyjne z ciągu za pomocą narzędzia Translate
  • Usuń znaki interpunkcyjne z ciągu za pomocą pętli Pythona
  • Usuń przecinek z ciągu za pomocą pętli Pythona
  • Usuń znaki interpunkcyjne z ciągu za pomocą wyrażenia regularnego
  • Używanie pętli for, łańcucha interpunkcyjnego, a nie operatora in
  • Usuwanie znaków interpunkcyjnych z ciągu za pomocą filter()
  • Korzystanie z metody zamiany().

Usuń znaki interpunkcyjne z ciągu za pomocą narzędzia Translate

Pierwsze dwa argumenty za ciąg.tłumacz metoda to puste ciągi znaków, a trzecim wejściem jest a Lista Pythona znaków interpunkcyjnych, które należy usunąć. To instruuje metodę Pythona, aby wyeliminować znaki interpunkcyjne z ciągu. To jest jeden z najlepsze sposoby na usunięcie znaków interpunkcyjnych z ciągu .

Python3








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

>

>

Wyjście:

Gfg is best for Geeks>

Usuń znaki interpunkcyjne z ciągu za pomocą pętli Pythona

To zadanie można wykonać metodą brute-force. W tym przypadku sprawdzamy interpunkcję za pomocą surowego ciągu znaków zawierającego znaki interpunkcyjne, a następnie konstruujemy ciąg znaków usuwający te znaki interpunkcyjne.

Python3


zmienna basha



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

>

>

Wyjście:

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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(n), gdzie n jest liczbą znaków w ciągu.

Usuń przecinek z ciągu za pomocą pętli Pythona

To jest brutalny sposób, w jaki można wykonać to zadanie. W tym przypadku sprawdzamy obecność przecinka za pomocą surowego ciągu znaków zawierającego przecinki, a następnie konstruujemy ciąg znaków usuwający te przecinki.

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

>

>

Wyjście:

GFG is the best>

Usuń znaki interpunkcyjne z ciągu za pomocą wyrażenia regularnego

Część zastępującą znaki interpunkcyjne można również wykonać za pomocą wyrażenie regularne . W tym przypadku zastępujemy wszystkie znaki interpunkcyjne pustym ciągiem znaków, używając określonego wyrażenia regularnego.

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

>

Java długo na ciąg
>

Wyjście :

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

Używanie pętli for, łańcucha interpunkcyjnego, a nie operatora in

Tutaj zobaczymy usuwanie znaków interpunkcyjnych w ciągu za pomocą pętli + ciągu znaków interpunkcyjnych.

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

>

>

Wyjście

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

Złożoność czasowo-przestrzenna dla wszystkich metod jest taka sama:

q2 miesiące

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Usuwanie znaków interpunkcyjnych z ciągu za pomocą filter()

Metoda filter() filtruje elementy sekwencji na podstawie danego warunku.
W tym przypadku możemy użyć metody filter() i funkcji lambda do odfiltrowania znaków interpunkcyjnych.

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>

>

>

Wyjście

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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Usuwanie znaków interpunkcyjnych z ciągu za pomocą metody zamiany().

Zaimportuj moduł string, a następnie zainicjuj ciąg wejściowy i wydrukuj oryginalny ciąg. Wykonaj pętlę przez każdy znak interpunkcyjny w stałej interpunkcyjnej ciągu po użyciu metody zamiany() w celu usunięcia każdego znaku interpunkcyjnego z ciągu wejściowego. a następnie wydrukuj wynikowy ciąg po usunięciu znaków interpunkcyjnych.

string zamień całą Java

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

>

>

Wyjście

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

Analiza złożoności czasu: O(len(string.interpunkcja) * len(test_str)) podczas gdy pętla for iteruje po wszystkich znakach interpunkcyjnych w stałej string.interpunkcja, co zajmuje czas O(len(string.interpunkcja)).

Analiza przestrzeni pomocniczej: O(1) . Ponieważ ciąg wejściowy jest modyfikowany lokalnie, nie jest wymagana dodatkowa przestrzeń do przechowywania wyniku.