Reťazce sú dátové typy používané na reprezentáciu textu/znakov. V tomto článku uvádzame rôzne metódy pre problém odstránenia ithznak z reťazca a porozprávajte sa o možných riešeniach, ktoré je možné použiť na ich dosiahnutie pomocou Pythonu.
Input: 'Geeks123For123Geeks' Output: GeeksForGeeks Explanation: In This, we have removed the '123' character from a string.>
Odstráňte znaky z reťazca v Pythone
Toto sú nasledujúce metódy, pomocou ktorých môžeme odstrániť písmená z reťazca Python :
- Použitím str.replace()
- Použitím preložiť ()
- Použitím rekurzia
- Použitie natívnej metódy
- Použitie rezu + zreťazenia
- Použitím str.join()
- Použitím byearray
- Použitím odstrániť predponu ()
Odstráňte znaky z reťazca pomocou funkcie replace()
str.replace() možno použiť na nahradenie všetkých výskytov požadovaného znaku. Môže sa tiež použiť na vykonanie úlohy odstránenia znaku z reťazca, pretože konkrétny index môžeme nahradiť prázdnym znakom, a tým problém vyriešiť.
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)> |
>
formátovať dátum v jave
>Výkon
The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)
Nevýhoda: Hlavnou nevýhodou použitia replace() je, že zlyhá v prípadoch, keď sú v reťazci duplikáty, ktoré zodpovedajú znaku na poz. i. Nahradiť() nahradí všetky výskyty konkrétneho znaku, a teda nahradí všetky výskyty všetkých znakov na pozícii i. Túto funkciu môžeme ešte niekedy použiť, ak sa nahrádzajúci znak vyskytne pre 1svčas v reťazci.
Odstráňte špecifický znak z reťazca pomocou funkcie Translate()
Táto metóda poskytuje silný mechanizmus na odstránenie znakov z reťazca. Pri tejto metóde sme pomocou techcodeview.com odstránili 123 string.translate() .
Python3
str> => 'Geeks123For123Geeks'> > print>(>str>.translate({>ord>(i):>None> for> i>in> '123'>}))> |
>
>
Výkon
GeeksForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O (m)
Odstráňte špecifický znak z reťazca pomocou rekurzie
Ak chcete odstrániť i-tý znak z reťazca pomocou rekurzie, môžete definovať rekurzívnu funkciu, ktorá prevezme reťazec a index, ktorý sa má odstrániť, ako argumenty. Funkcia skontroluje, či sa index rovná 0, v tomto prípade vráti reťazec s odstráneným prvým znakom. Ak index nie je 0, funkcia môže vrátiť prvý znak reťazca spojený s výsledkom opätovného volania funkcie na reťazci s indexom zníž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ýkon
The string after removal of ith character: GeksForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)
Odstráňte písmená z reťazca pomocou natívnej metódy
Pri tejto metóde stačí spustiť a Pythonová slučka a pripájajte znaky tak, ako prichádzajú, a vytvorte nový reťazec z existujúceho reťazca okrem prípadov, keď 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ýkon
The string after removal of i'th character : GeksForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n), kde n je dĺžka reťazca.
Odstráňte ithPostava z reťazca pomocou rezu
Jeden môže použiť strunový plátok a nakrájajte reťazec pred pozíciou i a rozrežte za poz. i. Potom pomocou reťazenie reťazcov z oboch, t.jthznak sa môže zdať vymazaný z reťazca.
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)> |
paralelné spracovanie
>
>Výkon
The string after removal of i'th character : GeksForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)
Odstráňte ithZnak z používania reťazca str.join()
Pri tejto metóde sa každý prvok reťazca najskôr skonvertuje ako každý prvok zoznamu a potom sa každý z nich spojí do reťazca okrem zadaného indexu.
Python3
niečo pre bfs
# 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ýkon
The string after removal of i'th character : GeksForGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)
Odstrániť písmená z reťazca v Pythone pomocou byearray
Definujte funkciu remove_char(s, i), ktorá berie reťazec s a celé číslo i ako vstup. A potom skonvertujte vstupný reťazec s na bajtový lúč pomocou byearray(s, 'utf-8'). Odstráňte i’th prvok z byearray pomocou del b[i]. Skonvertujte upravený bajtový lúč späť na reťazec pomocou b.decode() a vráťte upravený reťazec.
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ýkon
hell world>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)
Odstráňte písmená z reťazca pomocou removeprefix ()
removeprefix() odstráni predponu a vráti zvyšok reťazca. Písmená z reťazca pre akýkoľvek špecifický index môžeme odstrániť tak, že reťazec rozdelíme na dve polovice tak, že písmeno, ktoré sme chceli odstrániť, sa dostane do predpony ktorejkoľvek z dvoch partícií a potom môžeme použiť metódu na odstránenie písmena.
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)> |
>
>
Výkon:
eeksforGeeks GeeksorGeeks>
Časová zložitosť: O(n)
Priestorová zložitosť: O(n)