Pythonを使って文字列から1文字を削除する方法

例えば、文字列があります。EXAMPLE です。

そこから真ん中の文字、つまりMを削除するにはどうしたらいいですか?コードは必要ありません。知りたいのは

  • Pythonの文字列は何か特別な文字で終わるのですか?
  • 真ん中の文字からすべてを右から左にシフトするのと、新しい文字列を作成して真ん中の文字をコピーしないのと、どちらが良い方法でしょうか?
ソリューション

Pythonでは、文字列は不変なので、新しい文字列を作成する必要があります。 新しい文字列を作成する方法にはいくつかの選択肢があります。 どこに現れても 'M'を削除したい場合。

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

中心となる文字を削除したい場合。

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

文字列は特別な文字で終わるのかと質問されましたが。 いいえ、それはC言語のプログラマーのような考え方です。 Pythonでは、文字列はその長さで保存されますので、`0を含むあらゆるバイト値が文字列に現れます。

解説 (3)

これが一番の方法でしょう。

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

文字の移動などは気にしないでください。ほとんどのPythonコードははるかに高い抽象度で行われます。

解説 (3)

特定のポジションを置き換えるために

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

特定の文字を置き換えるには

s = s.replace('M','')
解説 (3)