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