Sådan fjerner du bogstaver fra en streng i Python

Strings er datatyper, der bruges til at repræsentere tekst/tegn. I denne artikel præsenterer vi forskellige metoder til problemet med at fjerne i th tegn fra en streng og tal om mulige løsninger, der kan bruges til at opnå dem ved hjælp af 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 de følgende metoder, hvormed vi kan fjerne bogstaver fra en streng i Python :

  • Ved brug af str.replace()
  • Ved brug af Oversætte()
  • Ved brug af rekursion
  • Brug af indfødt metode
  • Brug af skive + sammenkædning
  • Ved brug af str.join()
  • Ved brug af bytearray
  • Ved brug af fjerne præfiks ()

Fjern tegn fra en streng ved hjælp af replace()

str.replace() kan bruges til at erstatte alle forekomster af det ønskede tegn. Det kan også bruges til at udføre opgaven med at fjerne tegn fra en streng, da vi kan erstatte det bestemte indeks med tomt 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)>

Produktion

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

Tidskompleksitet: På)
Rumkompleksitet: På)

Ulempe: Den største ulempe ved at bruge replace() er, at det mislykkes i tilfælde, hvor der er dubletter i en streng, der matcher char ved pos. jeg. replace() erstatter alle forekomster af et bestemt tegn og ville derfor erstatte alle forekomster af alle tegn ved pos i. Vi kan stadig nogle gange bruge denne funktion, hvis det erstattende tegn forekommer for 1 st tid i snoren.

Fjern det specifikke tegn fra strengen ved hjælp af Translate()

Denne metode giver en stærk mekanisme til at fjerne tegn fra en streng. I denne metode fjernede vi 123 fra techcodeview.com vha string.translate() .

Python3




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

Produktion

GeeksForGeeks 

Tidskompleksitet: På)
Rumkompleksitet: O(m)

Fjern det specifikke tegn fra strengen ved hjælp af rekursion

For at fjerne det ith-tegn fra en streng ved hjælp af rekursion, kan du definere en rekursiv funktion, der tager strengen og indekset, der skal fjernes, som argumenter. Funktionen vil kontrollere, om indekset er lig med 0, i dette tilfælde returnerer den strengen med det første tegn fjernet. Hvis indekset ikke er 0, kan funktionen returnere det første tegn i strengen sammenkædet med resultatet af at kalde funktionen igen på strengen med indekset dekrementeret 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>

Produktion

The string after removal of ith character: GeksForGeeks 

Tidskompleksitet: På)
Rumkompleksitet: På)

Fjern bogstaver fra en streng ved hjælp af den oprindelige metode

I denne metode skal man bare køre en Python loop og tilføj tegnene, efterhånden som de kommer, og byg en ny streng fra den eksisterende, undtagen når indekset 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)>

Produktion

The string after removal of i'th character : GeksForGeeks 

Tidskompleksitet: På)
Rumkompleksitet: O(n), hvor n er længden af ​​strengen.

Fjern i th Karakter fra strengen ved hjælp af skive

Man kan bruge snor skive og skær snoren i skiver før pos i, og skær efter pos i. Brug derefter strengsammenkædning af begge, dvs th tegn kan se ud til at 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)>

Produktion

The string after removal of i'th character : GeksForGeeks 

Tidskompleksitet: På)
Rumkompleksitet: På)

Fjern i th Karakter fra strengen ved hjælp af str.join()

I denne metode konverteres hvert element i en streng først som hvert element på listen, og derefter forbindes hvert af dem for at danne en streng undtagen det angivne indeks.

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

Produktion

The string after removal of i'th character : GeksForGeeks 

Tidskompleksitet: På)
Rumkompleksitet: På)

Slet bogstaver fra en streng i Python ved hjælp af bytearray

Definer funktionen remove_char(s, i), der tager en streng s og et heltal i som input. Og konverter derefter inputstrengen s til et bytearray ved hjælp af bytearray(s, 'utf-8'). Slet det i’te element fra bytearray ved hjælp af del b[i]. Konverter den ændrede bytearray tilbage til en streng ved hjælp af b.decode() og returner den ændrede streng.

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

Produktion

hell world 

Tidskompleksitet: På)
Rumkompleksitet: På)

Fjern bogstaver fra en streng ved hjælp af removeprefix()

removeprefix() fjerner præfikset og returnerer resten af ​​strengen. Vi kan fjerne bogstaver fra en streng for ethvert specifikt indeks ved at dele strengen i to halvdele, således at bogstavet, som vi ønskede at fjerne, kommer i præfikset for en af ​​de to partitioner, og så kan vi anvende metoden til at fjerne bogstavet.

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

Produktion:

eeksforGeeks GeeksorGeeks 

Tidskompleksitet: På)
Rumkompleksitet: På)