Hvordan slette et tegn fra en streng ved hjelp av Python

Det er for eksempel en streng. EKSEMPEL.

Hvordan kan jeg fjerne det midterste tegnet, dvs. "M", fra den? Jeg trenger ikke koden. Jeg vil vite det:

  • Slutter strenger i Python på noe spesialtegn?
  • Hvilken er en bedre måte - å flytte alt fra høyre til venstre fra det midterste tegnet ELLER opprette en ny streng og ikke kopiere det midterste tegnet?
Løsning

I Python er strenger uforanderlige, så du må opprette en ny streng. Du har noen alternativer for hvordan du oppretter den nye strengen. Hvis du vil fjerne 'M' uansett hvor den vises:

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

Hvis du vil fjerne det sentrale tegnet:

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

Du spurte om strenger slutter med et spesialtegn. Nei, du tenker som en C-programmerer. I Python lagres strenger med sin lengde, så enhver byteverdi, inkludert \0, kan vises i en streng.

Kommentarer (3)

Dette er sannsynligvis den beste måten:

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

Ikke bekymre deg for å skifte tegn og slikt. Det meste av Python-koden foregår på et mye høyere abstraksjonsnivå.

Kommentarer (3)

For å erstatte en bestemt stilling:

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

For å erstatte et bestemt tegn:

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