Cum să eliminați litere dintr-un șir în Python

Șirurile de caractere sunt tipuri de date utilizate pentru a reprezenta text/caracterele. În acest articol, prezentăm diferite metode pentru problema eliminării i th caracter dintr-un șir și vorbiți despre posibilele soluții care pot fi folosite în realizarea lor folosind Python.

  Input:   'Geeks123For123Geeks'   Output:   GeeksForGeeks   Explanation:   In This, we have removed the '123' character from a string. 

Eliminați caractere dintr-un șir în Python

Acestea sunt următoarele metode prin care putem elimina literele dintr-un șir în Piton :

Eliminați caractere dintr-un șir folosind replace()

str.inlocuire() poate fi folosit pentru a înlocui toate aparițiile caracterului dorit. Poate fi folosit și pentru a efectua sarcina de eliminare a caracterelor dintr-un șir, deoarece putem înlocui indexul particular cu caracterul gol și, prin urmare, putem rezolva problema.

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

Ieșire

The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)

Dezavantaj: Dezavantajul major al utilizării replace() este că eșuează în cazurile în care există duplicate într-un șir care se potrivesc cu caracterul de la poz. i. replace() înlocuiește toate aparițiile unui anumit caracter și, prin urmare, ar înlocui toate aparițiile tuturor caracterelor la poziția i. Putem folosi uneori această funcție dacă caracterul de înlocuire apare pentru 1 Sf timp în șir.

Eliminați caracterul specific din șir folosind Translate()

Această metodă oferă un mecanism puternic de eliminare a caracterelor dintr-un șir. În această metodă, am eliminat 123 din techcodeview.com folosind string.translate() .

Python3




str> => 'Geeks123For123Geeks'> > print> (> str> .translate({> ord> (i):> None> for> i> in> '123'> }))>

Ieșire

GeeksForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: O(m)

Eliminați caracterul specific din șir folosind recursiunea

Pentru a elimina al-lea caracter dintr-un șir folosind recursiunea, puteți defini o funcție recursivă care preia șirul și indexul care urmează să fie eliminat ca argumente. Funcția va verifica dacă indexul este egal cu 0, în acest caz returnează șirul cu primul caracter eliminat. Dacă indexul nu este 0, funcția poate returna primul caracter al șirului concatenat cu rezultatul apelării din nou a funcției pe șir cu indicele decrementat cu 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>

Ieșire

The string after removal of ith character: GeksForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)

Eliminați litere dintr-un șir folosind metoda nativă

În această metodă, trebuie doar să rulați a Bucla Python și adăugați caracterele pe măsură ce vin și construiți un șir nou din cel existent, cu excepția cazului în care indexul este 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)>

Ieșire

The string after removal of i'th character : GeksForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: O(n), unde n este lungimea șirului.

Scoateți i th Caracter din șir folosind Slice

Se poate folosi felie de sfoară și feliați șirul înainte de poz i și feliați după poz i. Apoi folosind concatenare de șiruri din ambele, i th caracterul poate părea șters din șir.

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

Ieșire

The string after removal of i'th character : GeksForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)

Scoateți i th Caracter din șirul Folosind str.join()

În această metodă, fiecare element al unui șir este mai întâi convertit ca fiecare element al listei, apoi fiecare dintre ele este unit pentru a forma un șir, cu excepția indexului specificat.

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

Ieșire

The string after removal of i'th character : GeksForGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)

Ștergeți litere dintr-un șir în Python folosind bytearray

Definiți funcția remove_char(s, i) care ia ca intrare un șir s și un întreg i. Și apoi convertiți șirul de intrare s într-un bytearray folosind bytearray(s, „utf-8”). Ștergeți al-lea element din bytearray folosind del b[i]. Convertiți bytearray-ul modificat înapoi într-un șir folosind b.decode() și returnați șirul modificat.

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

Ieșire

hell world 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)

Eliminați litere dintr-un șir folosind removeprefix()

removeprefix() elimină prefixul și returnează restul șirului. Putem elimina litere dintr-un șir pentru orice index specific, împărțind șirul în două jumătăți, astfel încât litera pe care am vrut să o eliminam să fie în prefixul oricăreia dintre cele două partiții și apoi putem aplica metoda de eliminare a literei.

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

Ieșire:

eeksforGeeks GeeksorGeeks 

Complexitatea timpului: Pe)
Complexitatea spațiului: Pe)