logo

Jak odstranit písmena z řetězce v Pythonu

Ř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)