セミコロン (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 文字にあるすべてのセミコロンが置き換えられます。