Apakah ada fungsi dalam Python yang bisa saya gunakan untuk memasukkan nilai pada posisi string tertentu?
Sesuatu seperti ini:
"3655879ACB6"
kemudian di posisi 4 tambahkan "-"
menjadi"3655-879ACB6"
Tidak. String Python tidak dapat diubah.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Namun, dimungkinkan untuk membuat string baru yang memiliki karakter yang disisipkan:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Ini tampaknya sangat mudah:
Namun jika Anda menyukai sesuatu seperti fungsi, lakukan ini:
sumber
Karena string tidak dapat diubah, cara lain untuk melakukannya adalah dengan mengubah string menjadi daftar, yang kemudian dapat diindeks dan dimodifikasi tanpa tipu daya pengiris. Namun, untuk mengembalikan daftar ke string, Anda harus
.join()
menggunakan string kosong.Saya tidak yakin bagaimana ini membandingkan sejauh kinerja, tetapi saya merasa lebih mudah di mata daripada solusi lainnya. ;-)
sumber
Fungsi sederhana untuk mencapai ini:
sumber
Saya telah membuat metode yang sangat berguna untuk menambahkan string pada posisi tertentu dengan Python :
sebagai contoh:
kita akan memiliki sebagai output:
sumber
Saya pikir jawaban di atas baik-baik saja, tetapi saya akan menjelaskan bahwa ada beberapa efek samping yang tak terduga tapi bagus untuk mereka ...
Jika indeks pos_i sangat kecil (terlalu negatif), string yang dimasukkan akan lebih dulu. Jika terlalu lama, string yang dimasukkan akan ditambahkan. Jika pos_i berada di antara -len (string_s) dan + len (string_s) - 1, string yang dimasukkan dimasukkan ke tempat yang benar.
sumber
Python 3.6+ menggunakan f-string:
memberi
sumber
Jika Anda ingin banyak sisipan
sumber