Ciągi to typy danych używane do reprezentowania tekstu/znaków. W tym artykule przedstawiamy różne metody rozwiązania problemu usuwania itznak 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)> |
>
inicjator słownika c#
>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 1ulczas 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ń itZnak 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, tjtznak 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)> |
tablica bajtów na ciąg
>
>Wyjście
The string after removal of i'th character : GeksForGeeks>
Złożoność czasowa: NA)
Złożoność przestrzeni: NA)
Usuń itZnak 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)> |
>
porównywalny ciąg w Javie
>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)