Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Tidak Boleh Menggantikan Aksara Secara Terus dalam Rentetan Python Menggunakan Tugasan Indeks?

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

Susan Sarandon
Susan Sarandonasal
2024-11-20 14:41:16324semak imbas

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]=":"

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!

Kenyataan:
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