Řetězce jsou datové typy používané k reprezentaci textu/znaků. V tomto článku uvádíme různé metody pro problém odstranění ičtznak z řetězce a mluvit o možných řešeních, která lze použít k jejich dosažení pomocí Pythonu.
Input: 'Geeks123For123Geeks' Output: GeeksForGeeks Explanation: In This, we have removed the '123' character from a string.>
Odstraňte znaky z řetězce v Pythonu
Toto jsou následující metody, pomocí kterých můžeme odstranit písmena z řetězce v Krajta :
- Použitím str.replace()
- Použitím přeložit()
- Použitím rekurze
- Použití nativní metody
- Použití řezu + zřetězení
- Použitím str.join()
- Použitím byearray
- Použitím odstranit předponu ()
Odebrání znaků z řetězce pomocí replace()
str.replace() lze použít k nahrazení všech výskytů požadovaného znaku. Může být také použit k provedení úlohy odstranění znaku z řetězce, protože můžeme nahradit konkrétní index prázdným znakem, a tím problém vyřešit.
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)> |
>
přejmenování složky v linuxu
>Výstup
The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks>
Časová náročnost: Na)
Prostorová složitost: Na)
Nevýhoda: Hlavní nevýhodou použití replace() je, že selže v případech, kdy jsou v řetězci duplikáty, které odpovídají znaku na pozici. i. Nahradit() nahradí všechny výskyty určitého znaku, a proto by nahradilo všechny výskyty všech znaků na pozici i. Stále můžeme tuto funkci někdy použít, pokud se nahrazující znak vyskytne pro 1Svatýčas v řetězci.
Odstraňte konkrétní znak z řetězce pomocí Translate()
Tato metoda poskytuje silný mechanismus pro odstranění znaků z řetězce. V této metodě jsme odstranili 123 z techcodeview.com pomocí string.translate() .
Python3
str> => 'Geeks123For123Geeks'> > print>(>str>.translate({>ord>(i):>None> for> i>in> '123'>}))> |
>
>
Výstup
GeeksForGeeks>
Časová náročnost: Na)
Prostorová složitost: O(m)
Odstraňte specifický znak z řetězce pomocí rekurze
Chcete-li odstranit i-tý znak z řetězce pomocí rekurze, můžete definovat rekurzivní funkci, která vezme řetězec a index, který má být odstraněn, jako argumenty. Funkce zkontroluje, zda je index roven 0, v tomto případě vrátí řetězec s odstraněným prvním znakem. Pokud index není 0, může funkce vrátit první znak řetězce zřetězený s výsledkem opětovného volání funkce na řetězci s indexem sníženým 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> |
>
>
Výstup
The string after removal of ith character: GeksForGeeks>
Časová náročnost: Na)
Prostorová složitost: Na)
Odstraňte písmena z řetězce pomocí nativní metody
V této metodě stačí spustit a Pythonská smyčka a připojujte znaky tak, jak přicházejí, a vytvořte nový řetězec ze stávajícího, s výjimkou případů, kdy je index 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)> |
>
>Výstup
The string after removal of i'th character : GeksForGeeks>
Časová náročnost: Na)
Prostorová složitost: O(n), kde n je délka řetězce.
Odstraňte ičtPostava z řetězce pomocí řezu
Člověk může použít provázkový plátek a nakrájejte řetězec před pos i a nakrájejte za pos i. Poté pomocí řetězení řetězců z obou, tjčtznak se může zdát z řetězce odstraněn.
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)> |
přidat do pole v jazyce Java
>
>Výstup
The string after removal of i'th character : GeksForGeeks>
Časová náročnost: Na)
Prostorová složitost: Na)
Odstraňte ičtPoužití znaku z řetězce str.join()
V této metodě je každý prvek řetězce nejprve převeden jako každý prvek seznamu a poté je každý z nich spojen do řetězce kromě zadaného indexu.
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)> |
>
>Výstup
The string after removal of i'th character : GeksForGeeks>
Časová náročnost: Na)
Prostorová složitost: Na)
Odstraňte písmena z řetězce v Pythonu pomocí byearray
Definujte funkci remove_char(s, i), která přijímá řetězec s a celé číslo i jako vstup. A pak převeďte vstupní řetězec s na bajtray pomocí byearray(s, 'utf-8'). Odstraňte i’th prvek z byearray pomocí del b[i]. Převeďte upravený bajtray zpět na řetězec pomocí b.decode() a vraťte upravený řetězec.
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)> |
>
>
Výstup
hell world>
Časová náročnost: Na)
Prostorová složitost: Na)
Odstranění písmen z řetězce pomocí removeprefix()
removeprefix() odstraní předponu a vrátí zbytek řetězce. Písmena z řetězce pro jakýkoli konkrétní index můžeme odstranit tak, že řetězec rozdělíme na dvě poloviny tak, aby písmeno, které jsme chtěli odstranit, bylo v předponě kteréhokoli ze dvou oddílů, a pak můžeme použít metodu k odstranění písmene.
Python3
je speciální postava
#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)> |
>
>
Výstup:
eeksforGeeks GeeksorGeeks>
Časová náročnost: Na)
Prostorová složitost: Na)