Rumah > Artikel > pembangunan bahagian belakang > Mengapa Saya Tidak Boleh Menggantikan Aksara Secara Terus dalam Rentetan Python Menggunakan Tugasan Indeks?
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]=":"
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(';', ':')
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:]
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!