Hogyan lehet törölni egy karaktert egy karakterláncból Python segítségével?

Van egy string, például. PÉLDA.

Hogyan tudom eltávolítani belőle a középső karaktert, azaz az M-t? Nincs szükségem a kódra. Azt szeretném tudni:

  • A Pythonban a karakterláncok valamilyen speciális karakterrel végződnek?
  • Melyik a jobb megoldás - mindent jobbra-balra eltolni a középső karaktertől kezdve VAGY új karakterlánc létrehozása és a középső karakter másolása nélkül?
Megoldás

A Pythonban a karakterláncok megváltoztathatatlanok, ezért új karakterláncot kell létrehozni. Az új karakterlánc létrehozására több lehetőséged is van. Ha el akarod távolítani a 'M' -t, bárhol is jelenjen meg:

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

Ha el akarja távolítani a központi karaktert:

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

Azt kérdezte, hogy a karakterláncok speciális karakterrel végződnek-e. Nem, úgy gondolkodsz, mint egy C programozó. A Pythonban a karakterláncok a hosszukkal együtt tárolódnak, így bármilyen bájtérték, beleértve a \0-t is, megjelenhet egy karakterláncban.

Kommentárok (3)

Valószínűleg ez a legjobb megoldás:

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

Ne aggódj a karakterek eltolódása és hasonlók miatt. A legtöbb Python kód sokkal magasabb absztrakciós szinten zajlik.

Kommentárok (3)

Egy adott pozíció helyettesítésére:

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

Egy adott karakter cseréje:

s = s.replace('M','')
Kommentárok (3)