Kako izbrisati znak iz niza z uporabo Pythona

Obstaja niz, na primer. EXAMPLE.

Kako lahko iz njega odstranim srednji znak, tj. M? Ne potrebujem kode. Zanima me:

  • Ali se nizi v Pythonu končajo s kakšnim posebnim znakom?
  • Kateri način je boljši - premikanje vsega od desne proti levi, začenši s srednjim znakom ALI ustvarjanje novega niza in ne kopiranje srednjega znaka?
Rešitev

V Pythonu so nizi nespremenljivi, zato morate ustvariti nov niz. Na voljo imate nekaj možnosti, kako ustvariti nov niz. Če želite odstraniti znak 'M', kjerkoli se pojavi:

newstr = oldstr.replace("M", "")

Če želite odstraniti osrednji znak:

midlen = len(oldstr)/2   # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]

Vprašali ste, ali se nizi končajo s posebnim znakom. Ne, razmišljate kot programer v jeziku C. V Pythonu se nizi shranjujejo z njihovo dolžino, zato se lahko v nizu pojavi katerakoli bajtna vrednost, vključno z \0.

Komentarji (3)

To je verjetno najboljši način:

original = "EXAMPLE"
removed = original.replace("M", "")

Ne skrbite za premikanje znakov in podobno. Večina kode Pythona poteka na veliko višji ravni abstrakcije.

Komentarji (3)

Zamenjava določenega delovnega mesta:

s = s[:pos] + s[(pos+1):]

Za zamenjavo določenega znaka:

s = s.replace('M','')
Komentarji (3)