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)