Jak usunąć znak z łańcucha za pomocą Pythona

Jest tam ciąg znaków, na przykład. EXAMPLE.

Jak mogę usunąć z niego środkowy znak, czyli M? Nie potrzebuję kodu. Chcę wiedzieć:

  • Czy ciągi w Pythonie kończą się jakimiś specjalnymi znakami?
  • Który sposób jest lepszy - przesunięcie wszystkiego z prawej strony na lewą, zaczynając od środkowego znaku, czy utworzenie nowego łańcucha i nie kopiowanie środkowego znaku?
Rozwiązanie

W Pythonie ciągi są niezmienne, więc musisz utworzyć nowy ciąg. Masz kilka opcji, jak utworzyć nowy ciąg. Jeśli chcesz usunąć 'M' gdziekolwiek się pojawi:

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

Jeśli chcesz usunąć centralny znak:

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

Zapytałeś, czy ciągi kończą się znakiem specjalnym. Nie, myślisz jak programista C. W Pythonie łańcuchy są przechowywane z ich długością, więc w łańcuchu może pojawić się dowolna wartość bajtowa, w tym 0.

Komentarze (3)

To jest chyba najlepszy sposób:

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

Don't worry about shifting characters and such. Większość kodu Pythona odbywa się na znacznie wyższym poziomie abstrakcji.

Komentarze (3)

Aby zastąpić określoną pozycję:

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

Aby zastąpić określony znak:

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