Jak usunąć litery z ciągu w Pythonie

Ciągi to typy danych używane do reprezentowania tekstu/znaków. W tym artykule przedstawiamy różne metody rozwiązania problemu usuwania i t znak z ciągu znaków i porozmawiajmy o możliwych rozwiązaniach, które można zastosować, aby je osiągnąć za pomocą Pythona.

  Input:   'Geeks123For123Geeks'   Output:   GeeksForGeeks   Explanation:   In This, we have removed the '123' character from a string. 

Usuń znaki z ciągu w Pythonie

Są to następujące metody, za pomocą których możemy usunąć litery z ciągu znaków Pyton :

  • Za pomocą str.replace()
  • Za pomocą Tłumaczyć()
  • Za pomocą rekurencja
  • Używanie metody natywnej
  • Używanie plasterka + konkatenacji
  • Za pomocą str.join()
  • Za pomocą bajtearray
  • Za pomocą usuń przedrostek ()

Usuń znaki z ciągu za pomocą funkcji zamiany ()

str.replace() można użyć do zastąpienia wszystkich wystąpień żądanego znaku. Można go również wykorzystać do wykonania zadania usuwania znaków z łańcucha, ponieważ możemy zastąpić konkretny indeks pustym znakiem, a tym samym rozwiązać problem.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # Removing char at pos 3> # using replace> new_str> => test_str.replace(> 'e'> , '')> # Printing string after removal> # removes all occurrences of 'e'> print> (> 'The string after removal of i'th character( doesn't work) : '> +> new_str)> # Removing 1st occurrence of s, i.e 5th pos.> # if we wish to remove it.> new_str> => test_str.replace(> 's'> , '',> 1> )> # Printing string after removal> # removes first occurrences of s> print> (> 'The string after removal of i'th character(works) : '> +> new_str)>

Wyjście

The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)

Wada: Główną wadą stosowania funkcji zamiany() jest to, że kończy się ona niepowodzeniem w przypadku, gdy w ciągu znaków występują duplikaty pasujące do znaku na pozycji. I. zamień() zastępuje wszystkie wystąpienia określonego znaku, a zatem zastąpi wszystkie wystąpienia wszystkich znaków w pozycji i. Nadal możemy czasami skorzystać z tej funkcji, jeśli znak zastępujący występuje dla 1 ul czas w ciągu.

Usuń określony znak z ciągu za pomocą Translate()

Ta metoda zapewnia silny mechanizm usuwania znaków z ciągu. W tej metodzie usunęliśmy 123 z techcodeview.com za pomocą string.translate() .

Python3




str> => 'Geeks123For123Geeks'> > print> (> str> .translate({> ord> (i):> None> for> i> in> '123'> }))>

Wyjście

GeeksForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: O(m)

Usuń określony znak z ciągu za pomocą rekurencji

Aby usunąć i-ty znak z ciągu za pomocą rekurencji, można zdefiniować funkcję rekurencyjną, która przyjmuje ciąg znaków i indeks do usunięcia jako argumenty. Funkcja sprawdzi, czy indeks jest równy 0, w tym przypadku zwraca ciąg znaków z usuniętym pierwszym znakiem. Jeżeli indeks nie wynosi 0, funkcja może zwrócić pierwszy znak łańcucha połączony z wynikiem ponownego wywołania funkcji na ciągu znaków z indeksem zmniejszonym o 1.

Python3




def> remove_ith_character(s, i):> > # Base case: if index is 0,> > # return string with first character removed> > if> i> => => 0> :> > return> s[> 1> :]> > # Recursive case: return first character> > # concatenated with result of calling function> > # on string with index decremented by 1> > return> s[> 0> ]> +> remove_ith_character(s[> 1> :], i> -> 1> )> # Test the function> test_str> => 'GeeksForGeeks'> new_str> => remove_ith_character(test_str,> 2> )> print> (> 'The string after removal of ith character:'> , new_str)> # This code is contributed by Edula Vinay Kumar Reddy>

Wyjście

The string after removal of ith character: GeksForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)

Usuń litery z ciągu za pomocą metody natywnej

W tej metodzie wystarczy uruchomić plik a Pętla Pythona i dołączaj pojawiające się znaki i twórz nowy ciąg na podstawie istniejącego, z wyjątkiem sytuacji, gdy indeks to i.

Python3




test_str> => 'GeeksForGeeks'> # Removing char at pos 3> new_str> => ''> for> i> in> range> (> len> (test_str)):> > if> i !> => 2> :> > new_str> => new_str> +> test_str[i]> # Printing string after removal> print> (> 'The string after removal of i'th character : '> +> new_str)>

Wyjście

The string after removal of i'th character : GeksForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: O(n), gdzie n jest długością łańcucha.

Usuń i t Znak z ciągu za pomocą plasterka

Można skorzystać kawałek sznurka i przetnij ciąg przed pozycją i i przetnij po pozycją i. Następnie za pomocą łączenie ciągów z obu, tj t znak może wyglądać na usunięty z ciągu.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # Removing char at pos 3> # using slice + concatenation> new_str> => test_str[:> 2> ]> +> test_str[> 3> :]> # Printing string after removal> # removes ele. at 3rd index> print> (> 'The string after removal of i'th character : '> +> new_str)>

Wyjście

The string after removal of i'th character : GeksForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)

Usuń i t Znak z ciągu za pomocą str.join()

W tej metodzie każdy element ciągu jest najpierw konwertowany jako każdy element listy, a następnie każdy z nich jest łączony w celu utworzenia ciągu, z wyjątkiem określonego indeksu.

Python3




# Initializing String> test_str> => 'GeeksForGeeks'> # Removing char at pos 3> # using join() + list comprehension> new_str> => ''.join([test_str[i]> for> i> in> range> (> len> (test_str))> if> i !> => 2> ])> # Printing string after removal> # removes ele. at 3rd index> print> (> 'The string after removal of i'th character : '> +> new_str)>

Wyjście

The string after removal of i'th character : GeksForGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)

Usuń litery z ciągu w Pythonie za pomocą bytearray

Zdefiniuj funkcję usuwania_char(s, i), która jako dane wejściowe przyjmuje ciąg znaków s oraz liczbę całkowitą i. A następnie przekonwertuj ciąg wejściowy s na bajtarray za pomocą bytearray(s, „utf-8”). Usuń element i z pliku bajtearray używając del b[i]. Przekonwertuj zmodyfikowaną tablicę bajtową z powrotem na ciąg znaków za pomocą b.decode() i zwróć zmodyfikowany ciąg.

Python3




def> remove_char(s, i):> > b> => bytearray(s,> 'utf-8'> )> > del> b[i]> > return> b.decode()> # Example usage> s> => 'hello world'> i> => 4> s> => remove_char(s, i)> print> (s)>

Wyjście

hell world 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)

Usuń litery z ciągu za pomocą metody usuwaniaprefix()

usuńprzedrostek() usuwa przedrostek i zwraca resztę ciągu. Możemy usunąć litery z ciągu znaków dla dowolnego konkretnego indeksu, dzieląc ciąg na dwie połowy w taki sposób, że litera, którą chcemy usunąć, znajduje się w przedrostku dowolnej z dwóch partycji, a następnie możemy zastosować metodę usunięcia litery.

Python3




#initializing the string> s> => 'techcodeview.com'> #if you wanted to remove 'G' of 0th index> s1> => s.removeprefix(> 'G'> )> #if you wanted to remove 'f'> s2> => s[:> 5> ]> +> s[> 5> :].removeprefix(> 'f'> )> print> (s1)> print> (s2)>

Wyjście:

eeksforGeeks GeeksorGeeks 

Złożoność czasowa: NA)
Złożoność przestrzeni: NA)