python 文字列中の複数の文字・文字列を置き換える

文字列中の複数の文字・文字列を置き換える方法を示します。

複数の文字を置き換える

“abcde”の「”a”, “c”, “e”」を「”A”, “C”, “E”」に置き換えるコードです。

s = "abcde"
old = "ace"
new = "ACE"

for c1, c2 in zip(old, new):
    s = s.replace(c1, c2)
print(s)
"""出力
AbCdE
"""
  • for c1, c2 in zip(old, new):
    • zip(old, new)により、「(a, A), (c, C), (e, E)」を要素とするタプルのイテレータを返します。
    • c1, c2により、タプルのアンパックを行い、c1にaがc2にAが代入されます。イテレータの別の要素についても同様です。
  • s = s.replace(c1, c2)
    • sの中のc1をc2で置き換えた文字列を返します。

複数の文字列を置き換える

“abc-def-ghi”の「”abc”, “def”, “ghi”」を置き換えるコードです。

s = "abc-def-ghi"
old = ["abc", "def", "ghi"]
new = ["AB", "DE", "GH"]
for x, y in zip(old, new):
    s = s.replace(x, y)
print(s)
"""出力
AB-DE-GH
"""

複数の文字を置き換えるとほぼ同じ処理をしているので、説明は省略します。

コメント

タイトルとURLをコピーしました