インデックス割り当てを使用して文字列内の文字を置換できません
次のコード スニペットを考えてみましょう。これは、文字列内の指定された位置でセミコロンをコロンに置換しようとします。文字列:
for i in range(0,len(line)): if (line[i]==";" and i in rightindexarray): line[i]=":"
ただし、このコードは TypeError で失敗します。 str オブジェクトは項目の割り当てをサポートしていません。これは、Python の文字列は不変であり、その内容を直接変更できないためです。
問題の解決
文字列内の文字を置換するには、 replace() メソッド:
line = line.replace(';', ':')
このメソッドは、指定された文字 (';') のすべての出現を新しい文字に置き換えます。 (':').
選択的置換
特定の文字のみを置換したい場合は、文字列スライスを使用して、置換したい文字列のセクションを分離できます。変更:
line = line[:10].replace(';', ':') + line[10:]
このコードは、最初の 10 文字のセミコロンをすべて置き換えます。 string.
例
上記のコードを使用すると、文字列 "Hei der! ; Hello there ;!;" と、必要な置換のインデックスを含む rightindexarray ([ 3, 13]) は、「Hei der! : Hello there :!;」に変換されます。
以上がインデックス割り当てを使用して Python 文字列内の文字を直接置換できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。