logo

Ako odstrániť písmená z reťazca v Pythone

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)