Python で文字列の文字を置き換える

Manav Narula 2023年10月10日
  1. list() および join() 関数を使用して、文字列内の文字を置き換える
  2. bytearray() 関数を使用して、文字列内の文字を置き換える
  3. replace() 関数を使用して、文字列内の文字を置き換える
  4. 文字列連結メソッドを使用して、文字列内の文字を置き換える
Python で文字列の文字を置き換える

文字列は文字の集まりです。Python では、文字列は不変です。これは、そのようなオブジェクトを変更して再割り当てすることは不可能であるか、コピーを作成できることを意味します。

このため、文字列内の文字を置き換えるのは簡単ではありません。可変オブジェクトを扱っている場合は、以下に示すリストのように、その要素を簡単に変更できます。

l = ["a", "b", "c"]
l[1] = "d"
print(l)

出力:

['a', 'd', 'c']

文字列に対しても同じことはしません。このチュートリアルでは、文字列内の文字を置き換える方法を学習します。

list() および join() 関数を使用して、文字列内の文字を置き換える

このメソッドでは、list() 関数を使用して文字列を文字のリストに変換します。このリストから必要な文字を変更します。次に、join() 関数を使用して、リスト全体を 1つの文字列に結合します。

次のコードスニペットはこれを実装しています。

s = "Naze"
l = list(s)
l[2] = "m"
s = "".join(l)
print(s)

出力:

Name

これは、少し遅いと考えられていますが、単純で効率的な方法です。

bytearray() 関数を使用して、文字列内の文字を置き換える

バイト配列は Python の可変オブジェクトです。これはバイトの配列です。bytearray() 関数を使用して文字列をバイト配列に変換し、必要な置換を行ってから、str() 関数を使用して文字列に変換し直すことができます。

例えば、

s = "Naze"
b = bytearray(s)
b[2] = "m"
s = str(b)
print(s)

出力:

Name

最近のバージョンでは文字列をエンコードする必要があるため、このメソッドは Python 3.x 以降では失敗することに注意してください。

replace() 関数を使用して、文字列内の文字を置き換える

Python は、文字列を操作するための多くの関数を備えています。replace() 関数を使用して、文字列内の文字を変更できます。関数で新旧の文字を指定する必要があります。

次のコードは、この関数の使用法を示しています。

s = "Naze"
new_s = s.replace("z", "m")
print(new_s)

出力:

Name

このメソッドは、古い文字のすべての出現箇所を新しい文字に置き換えることに注意してください。

文字列連結メソッドを使用して、文字列内の文字を置き換える

変更したいキャラクターの位置がわかっている場合、この方法は非常に便利で高速です。文字列をその部分まで分割し、文字を追加してから、残っている文字列の残りの部分と連結します。

次のコードスニペットはこれを実装しています。

s = "Naze"
new_s = s[:2] + "m" + s[3:]
print(new_s)

出力:

Name

これはすべての方法の中で最速であることに注意してください。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python String