Mengapa Saya Tidak Boleh Menggantikan Aksara Secara Terus dalam Rentetan Python Menggunakan Tugasan Indeks?

Susan Sarandon
Lepaskan: 2024-11-20 14:41:16
asal
323 orang telah melayarinya

Why Can't I Directly Replace Characters in a Python String Using Index Assignment?

Tidak Dapat Menggantikan Aksara dalam Rentetan Menggunakan Tugasan Indeks

Pertimbangkan coretan kod berikut, yang cuba menggantikan koma bertitik dengan titik bertindih pada kedudukan tertentu dalam rentetan:

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

Walau bagaimanapun, kod ini gagal dengan TypeError, menunjukkan bahawa objek str tidak menyokong penetapan item. Ini kerana rentetan dalam Python tidak boleh diubah, bermakna kandungannya tidak boleh diubah suai secara langsung.

Mengatasi Isu

Untuk menggantikan aksara dalam rentetan, anda boleh menggunakan kaedah replace():

line = line.replace(';', ':')
Salin selepas log masuk

Kaedah ini menggantikan semua kejadian aksara yang ditentukan (';') dengan aksara baharu (':').

Penggantian Terpilih

Jika anda hanya mahu menggantikan aksara tertentu, anda boleh menggunakan penghirisan rentetan untuk mengasingkan bahagian rentetan yang ingin anda ubah suai:

line = line[:10].replace(';', ':') + line[10:]
Salin selepas log masuk

Kod ini akan menggantikan semua koma bertitik dalam 10 aksara pertama rentetan.

Contoh

Menggunakan kod di atas, rentetan "Hei der! ; Hello there ;!;", dengan rightindexarray mengandungi indeks penggantian yang diingini ([3, 13]), akan ditukar kepada "Hei der! : Hello :!;".

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggantikan Aksara Secara Terus dalam Rentetan Python Menggunakan Tugasan Indeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan