Kode sederhana ini yang mencoba mengganti titik koma (pada posisi yang ditentukan-i) dengan titik dua tidak berfungsi:
for i in range(0,len(line)):
if (line[i]==";" and i in rightindexarray):
line[i]=":"
Ini memberikan kesalahan
line[i]=":"
TypeError: 'str' object does not support item assignment
Bagaimana cara mengatasi ini untuk mengganti titik koma dengan titik dua? Menggunakan ganti tidak berfungsi karena fungsi itu tidak membutuhkan indeks- mungkin ada beberapa titik koma yang tidak ingin saya ganti.
Contoh
Dalam string saya mungkin memiliki beberapa titik koma, misalnya "Hei der!; Halo yang di sana;!;"
Saya tahu mana yang ingin saya ganti (saya memiliki indeksnya dalam string). Menggunakan replace tidak berfungsi karena saya tidak dapat menggunakan indeks dengannya.
str.replace()
BIF?str.find()
untuk mencari posisi titik koma, lalu gunakan pemotongan untuk mengekstrak substring.Jawaban:
String dalam python tidak dapat diubah, jadi Anda tidak dapat memperlakukannya sebagai daftar dan ditetapkan ke indeks.
Gunakan
.replace()
sebagai gantinya:Jika Anda hanya perlu mengganti titik koma tertentu , Anda harus lebih spesifik. Anda dapat menggunakan slicing untuk mengisolasi bagian string yang akan diganti:
Itu akan menggantikan semua titik koma dalam 10 karakter pertama string.
sumber
Anda dapat melakukan hal di bawah ini, untuk mengganti karakter apapun dengan karakter masing-masing pada indeks tertentu, jika Anda tidak ingin menggunakannya
.replace()
sumber
Ubah string menjadi daftar; lalu Anda dapat mengubah karakter satu per satu. Kemudian Anda dapat menyatukannya kembali dengan
.join
:sumber
Jika Anda ingin mengganti satu titik koma:
Aku pernah mencobanya.
sumber
line.replace(src,dst)
tidak.line[:10].replace(src,dst) + line[10:]
tidak, tetapi dengan tingkat keparahan yang jauh lebih kecil. Misalkanline = ';'*12
. Solusi Anda akan membuat string baru 12 kali. Solusi yang diterima akan melakukannya sekali.Ini harus mencakup kasus yang sedikit lebih umum, tetapi Anda harus dapat menyesuaikannya untuk tujuan Anda
Semoga ini membantu
sumber
Anda tidak bisa begitu saja menetapkan nilai ke karakter dalam string. Gunakan metode ini untuk mengganti nilai karakter tertentu:
Keluaran: Dalam * ia
Juga, jika Anda ingin mengganti say * untuk semua kemunculan karakter pertama kecuali karakter pertama, mis. string = keluaran babble = ba ** le
Kode:
sumber
Jika Anda mengganti dengan nilai indeks yang ditentukan dalam variabel 'n', coba yang berikut ini:
sumber
Bagaimana dengan ini:
sumber
untuk menggunakan metode .replace () secara efektif pada string tanpa membuat daftar terpisah misalnya lihat daftar nama pengguna yang berisi string dengan beberapa spasi, kami ingin mengganti spasi putih dengan garis bawah di setiap string nama pengguna.
untuk mengganti spasi di setiap nama pengguna, pertimbangkan untuk menggunakan fungsi range di python.
sumber
Untuk mengganti karakter pada indeks tertentu, fungsinya adalah sebagai berikut:
dimana s adalah string, n adalah indeks dan c adalah karakter.
sumber
Saya menulis metode ini untuk mengganti karakter atau mengganti string pada contoh tertentu. instance dimulai dari 0 (ini dapat dengan mudah diubah menjadi 1 jika Anda mengubah argumen inst opsional menjadi 1, dan variabel test_instance menjadi 1.
sumber
Kamu bisa melakukan ini:
sumber
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
nama pengguna = []
o, p Joey_Tribbiani Monica_Geller Chandler_Bing Phoebe_Buffay
sumber