Hvordan fjerne bokstaver fra en streng i Python
Strenger er datatyper som brukes til å representere tekst/tegn. I denne artikkelen presenterer vi forskjellige metoder for problemet med å fjerne i th tegn fra en streng og snakk om mulige løsninger som kan brukes for å oppnå dem ved hjelp av Python.
Input: 'Geeks123For123Geeks' Output: GeeksForGeeks Explanation: In This, we have removed the '123' character from a string.
Fjern tegn fra en streng i Python
Dette er følgende metoder for å fjerne bokstaver fra en streng i Python :
- Ved hjelp av str.replace()
- Ved hjelp av oversette()
- Ved hjelp av rekursjon
- Bruker Native Method
- Bruke skive + sammenkobling
- Ved hjelp av str.join()
- Ved hjelp av bytearray
- Ved hjelp av fjern prefiks ()
Fjern tegn fra en streng ved å bruke replace()
str.replace() kan brukes til å erstatte alle forekomster av ønsket tegn. Den kan også brukes til å utføre oppgaven med fjerning av tegn fra en streng, da vi kan erstatte den bestemte indeksen med tom tegn, og dermed løse problemet.
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)> |
Produksjon
The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks
Tidskompleksitet: På)
Plass kompleksitet: På)
Ulempen: Den største ulempen med å bruke replace() er at den mislykkes i tilfeller der det er duplikater i en streng som samsvarer med char ved pos. Jeg. replace() erstatter alle forekomstene av et bestemt tegn og vil derfor erstatte alle forekomstene av alle tegnene ved pos i. Vi kan fortsatt noen ganger bruke denne funksjonen hvis det erstattende tegnet forekommer for 1 st tid i strengen.
Fjern det spesifikke tegnet fra strengen ved å bruke Translate()
Denne metoden gir en sterk mekanisme for å fjerne tegn fra en streng. I denne metoden fjernet vi 123 fra techcodeview.com ved hjelp av string.translate() .
Python3
str> => 'Geeks123For123Geeks'> > print> (> str> .translate({> ord> (i):> None> for> i> in> '123'> }))> |
Produksjon
GeeksForGeeks
Tidskompleksitet: På)
Plass kompleksitet: O(m)
Fjern det spesifikke tegnet fra strengen ved å bruke rekursjon
For å fjerne ith-tegnet fra en streng ved hjelp av rekursjon, kan du definere en rekursiv funksjon som tar inn strengen og indeksen som skal fjernes som argumenter. Funksjonen vil sjekke om indeksen er lik 0, i dette tilfellet returnerer den strengen med det første tegnet fjernet. Hvis indeksen ikke er 0, kan funksjonen returnere det første tegnet i strengen sammenkoblet med resultatet av å kalle funksjonen på nytt på strengen med indeksen redusert med 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> |
Produksjon
The string after removal of ith character: GeksForGeeks
Tidskompleksitet: På)
Plass kompleksitet: På)
Fjern bokstaver fra en streng ved å bruke den opprinnelige metoden
I denne metoden må man bare kjøre en Python-løkke og legg til tegnene etter hvert som de kommer, og bygg en ny streng fra den eksisterende bortsett fra når indeksen er 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)> |
Produksjon
The string after removal of i'th character : GeksForGeeks
Tidskompleksitet: På)
Plass kompleksitet: O(n), der n er lengden på strengen.
Fjern i th Karakter fra strengen ved hjelp av skive
Man kan bruke streng skive og kutt strengen før pos i, og skjær etter pos i. Bruk deretter strengsammenkobling av begge, dvs th tegn kan se ut til å være slettet fra strengen.
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)> |
Produksjon
The string after removal of i'th character : GeksForGeeks
Tidskompleksitet: På)
Plass kompleksitet: På)
Fjern i th Karakter fra strengen ved hjelp av str.join()
I denne metoden blir hvert element i en streng først konvertert som hvert element i listen, og deretter kobles hvert av dem sammen for å danne en streng bortsett fra den spesifiserte indeksen.
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)> |
Produksjon
The string after removal of i'th character : GeksForGeeks
Tidskompleksitet: På)
Plass kompleksitet: På)
Slett bokstaver fra en streng i Python ved å bruke bytearray
Definer funksjonen remove_char(s, i) som tar en streng s og et heltall i som input. Og konverter deretter inngangsstrengen s til en bytearray ved å bruke bytearray(s, 'utf-8'). Slett det i’te elementet fra bytearray ved å bruke del b[i]. Konverter den modifiserte bytearrayen tilbake til en streng ved å bruke b.decode() og returner den modifiserte strengen.
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)> |
Produksjon
hell world
Tidskompleksitet: På)
Plass kompleksitet: På)
Fjern bokstaver fra en streng ved å bruke removeprefix()
removeprefix() fjerner prefikset og returnerer resten av strengen. Vi kan fjerne bokstaver fra en streng for en hvilken som helst spesifikk indeks ved å dele strengen i to halvdeler slik at bokstaven vi ønsket å fjerne kommer i prefikset til en av de to partisjonene, og deretter kan vi bruke metoden for å fjerne bokstaven.
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)> |
Produksjon:
eeksforGeeks GeeksorGeeks
Tidskompleksitet: På)
Plass kompleksitet: På)