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 :
- Folosind str.inlocuire()
- Folosind Traduceți()
- Folosind recursiunea
- Folosind metoda nativă
- Folosind felie + concatenare
- Folosind str.join()
- Folosind bytearray
- Folosind elimina prefix ()
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)