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.