文字列内の文字のインスタンスを置き換える 質問する

文字列内の文字のインスタンスを置き換える 質問する

セミコロン (i で指定された位置) をコロンに置き換えようとするだけのこの単純なコードは機能しません。

for i in range(0,len(line)):
     if (line[i]==";" and i in rightindexarray):
         line[i]=":"

エラーが出る

line[i]=":"
TypeError: 'str' object does not support item assignment

セミコロンをコロンに置き換えるにはどうすればいいでしょうか? replace 関数はインデックスを受け取らないため、機能しません。置き換えたくないセミコロンがいくつかある可能性があります。

文字列には任意の数のセミコロンが含まれる場合があります。例: "Hei der! ; Hello there ;!;"

置換したいものはわかっています (文字列内にインデックスがあります)。置換ではインデックスを使用できないため、置換は機能しません。

ベストアンサー1

Python の文字列は不変なので、リストとして扱い、インデックスに割り当てることはできません。

使用.replace()その代わり:

line = line.replace(';', ':')

交換が必要な場合のみあるセミコロンを使用する場合は、より具体的に指定する必要があります。スライスを使用して、置換する文字列のセクションを分離できます。

line = line[:10].replace(';', ':') + line[10:]

これにより、文字列の最初の 10 文字にあるすべてのセミコロンが置き換えられます。

おすすめ記事