logo

Kaip pašalinti raides iš eilutės Python

Eilutės yra duomenų tipai, naudojami tekstui / simboliams pavaizduoti. Šiame straipsnyje pateikiame skirtingus metodus, kaip pašalinti ithsimbolį iš eilutės ir pakalbėkite apie galimus sprendimus, kuriuos galima panaudoti norint juos pasiekti naudojant Python.

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

Pašalinkite simbolius iš eilutės Python

Tai yra šie metodai, kuriais naudodami galime pašalinti raides iš eilutės Python :

  • Naudojant str.replace()
  • Naudojant išversti ()
  • Naudojant rekursija
  • Natyvinio metodo naudojimas
  • Naudojant pjūvį + sujungimą
  • Naudojant str.join()
  • Naudojant bytearray
  • Naudojant pašalinti priešdėlį ()

Pašalinkite simbolius iš eilutės naudodami „replace()“

str.replace() gali būti naudojamas pakeisti visus norimo simbolio atvejus. Jis taip pat gali būti naudojamas simbolių pašalinimo iš eilutės užduočiai, nes galime pakeisti konkretų indeksą tuščiu simboliu ir taip išspręsti problemą.



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

>

kas yra objektas java
>

Išvestis

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

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)

Trūkumas: Pagrindinis „replace()“ naudojimo trūkumas yra tas, kad jis nepavyksta tais atvejais, kai eilutėje yra dublikatų, atitinkančių pos. i. pakeisti() pakeičia visus konkretaus simbolio pasikartojimus, taigi pakeistų visus i pozicijoje esančius simbolius. Kartais vis tiek galime naudoti šią funkciją, jei pakeičiantis simbolis yra 1Švlaikas eilutėje.

Pašalinkite konkretų simbolį iš eilutės naudodami Translate ()

Šis metodas suteikia tvirtą mechanizmą, leidžiantį pašalinti simbolius iš eilutės. Šiuo metodu pašalinome 123 iš techcodeview.com naudodami string.translate() .

Python3




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

>

>

Išvestis

GeeksForGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(m)

Pašalinkite konkretų simbolį iš eilutės naudodami rekursiją

Norėdami pašalinti i-ąjį simbolį iš eilutės naudodami rekursiją, galite apibrėžti rekursinę funkciją, kuri paima eilutę ir indeksą, kuris turi būti pašalintas kaip argumentai. Funkcija patikrins, ar indeksas yra lygus 0, tokiu atveju ji grąžins eilutę su pašalintu pirmuoju simboliu. Jei indeksas nėra 0, funkcija gali grąžinti pirmąjį eilutės simbolį, susietą su funkcijos iškvietimo rezultatu eilutėje, kurios indeksas sumažintas 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>

>

>

Išvestis

The string after removal of ith character: GeksForGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)

Pašalinkite raides iš eilutės naudodami vietinį metodą

Taikant šį metodą, tereikia paleisti a Python kilpa ir pridėti simbolius, kai jie atsiranda, ir sukurti naują eilutę iš esamos, išskyrus atvejus, kai indeksas yra 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)>

>

>

Išvestis

The string after removal of i'th character : GeksForGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n), kur n yra eilutės ilgis.

Nuimkite ithSimbolis iš eilutės naudojant pjūvį

Galima naudoti stygos pjūvis ir perpjaukite eilutę prieš poz i ir perpjaukite po poz i. Tada naudojant stygų sujungimas iš abiejų, tthsimbolis gali atrodyti kaip ištrintas iš eilutės.

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

pandas melt

>

>

Išvestis

The string after removal of i'th character : GeksForGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)

Nuimkite ithSimbolis iš eilutės naudojant str.join()

Taikant šį metodą, kiekvienas eilutės elementas pirmiausia konvertuojamas į kiekvieną sąrašo elementą, o tada kiekvienas iš jų sujungiamas į eilutę, išskyrus nurodytą indeksą.

Python3




panaši eilutė java

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

>

>

Išvestis

The string after removal of i'th character : GeksForGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)

Ištrinkite raides iš eilutės Python naudodami bytearray

Apibrėžkite funkciją remove_char(s, i), kuri kaip įvestį paima eilutę s ir sveikąjį skaičių i. Tada konvertuokite įvesties eilutę į baitų masyvą naudodami baitų masyvą (-us, „utf-8“). Ištrinkite i'-ąjį elementą iš bytearray naudojant del b[i]. Konvertuokite pakeistą bytearray atgal į eilutę naudodami b.decode() ir grąžinkite pakeistą eilutę.

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

>

>

Išvestis

hell world>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)

Pašalinkite raides iš eilutės naudodami removeprefix()

pašalinti prefiksą () pašalina priešdėlį ir grąžina likusią eilutės dalį. Mes galime pašalinti raides iš bet kurios konkrečios indekso eilutės, padalydami eilutę į dvi dalis taip, kad raidė, kurią norėjome pašalinti, būtų bet kurio iš dviejų skaidinių priešdėlyje, ir tada galime taikyti raidės pašalinimo metodą.

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

>

>

Išvestis:

eeksforGeeks GeeksorGeeks>

Laiko sudėtingumas: O(n)
Erdvės sudėtingumas: O(n)