Ada string, misalnya. EXAMPLE
.
Bagaimana saya bisa menghapus karakter tengah, yaitu M
dari itu? Saya tidak butuh kode. Saya ingin tahu:
- Apakah string dalam Python diakhiri dengan karakter khusus?
- Mana cara yang lebih baik - menggeser semuanya dari kanan ke kiri mulai dari karakter tengah ATAU pembuatan string baru dan tidak menyalin karakter tengah?
Jawaban:
Dalam Python, string tidak dapat diubah, jadi Anda harus membuat string baru. Anda memiliki beberapa opsi cara membuat string baru. Jika Anda ingin menghapus 'M' di mana pun itu muncul:
Jika Anda ingin menghapus karakter sentral:
Anda bertanya apakah string diakhiri dengan karakter khusus. Tidak, Anda berpikir seperti seorang programmer C. Dalam Python, string disimpan dengan panjangnya, sehingga nilai byte apa pun, termasuk
\0
, dapat muncul dalam sebuah string.sumber
from __future__ import division
di awal skrip Anda akan membuat versi 2.X python bertindak seperti versi 3.X""
tidak menyiratkan garis kosong. Jika Anda memasukkannya ke dalam daftar, dan bergabung dengan baris baru, maka itu akan membuat garis kosong, tetapi ada banyak tempat lain Anda mungkin menggunakan string kosong yang tidak akan melakukan itu.Ini mungkin cara terbaik:
Jangan khawatir tentang pengalihan karakter dan semacamnya. Sebagian besar kode Python terjadi pada tingkat abstraksi yang jauh lebih tinggi.
sumber
M
mungkin tidak unik. Dalam hal ini, ini akan menggantikan semuaM
, kan?n
kejadian, gunakanoriginal.replace("M", "", n)
.Untuk mengganti posisi tertentu:
Untuk mengganti karakter tertentu:
sumber
l
. Kemudian untuk bagian pertama, batasan pos harusl-1 > pos >= 0
.String tidak berubah. Tapi Anda bisa mengonversinya menjadi daftar, yang bisa berubah-ubah, dan kemudian mengonversi daftar kembali ke string setelah Anda mengubahnya.
Anda juga dapat membuat string baru, seperti yang orang lain tunjukkan, dengan mengambil semuanya kecuali karakter yang Anda inginkan dari string yang ada.
sumber
str.replace
metode saja?Anda tidak bisa, karena string dalam Python tidak dapat diubah .
Tidak. Mereka mirip dengan daftar karakter; panjang daftar menentukan panjang string, dan tidak ada karakter yang bertindak sebagai terminator.
Anda tidak dapat mengubah string yang ada, jadi Anda harus membuat yang baru yang berisi semuanya kecuali karakter tengah.
sumber
Gunakan
translate()
metode:sumber
None
untuk menghapus tampaknya tidak berfungsi):translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
danstr.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
UserString.MutableString
Cara bisa berubah:
sumber
Cara menghapus satu karakter dari string: Berikut adalah contoh di mana ada tumpukan kartu yang direpresentasikan sebagai karakter dalam string. Salah satunya ditarik (impor modul acak untuk fungsi random.choice (), yang mengambil karakter acak dalam string). String baru, cardsLeft, dibuat untuk menahan kartu yang tersisa yang diberikan oleh fungsi string replace () di mana parameter terakhir menunjukkan bahwa hanya satu "kartu" yang harus diganti oleh string kosong ...
sumber
Saya pernah melihat ini di suatu tempat di sini .
sumber
Inilah yang saya lakukan untuk memotong "M":
sumber
Jika Anda ingin menghapus / mengabaikan karakter dalam sebuah string, dan, misalnya, Anda memiliki string ini,
"[11: L: 0]"
dari respons API web atau sesuatu seperti itu, seperti file CSV, katakanlah Anda menggunakan permintaan
lingkaran dan singkirkan karakter yang tidak diinginkan:
Pemisahan opsional, dan Anda akan dapat membaca nilai secara individual:
Sekarang mengakses setiap nilai lebih mudah:
Ini akan dicetak
sumber
Untuk menghapus a
char
atausub-string
sekali (hanya kejadian pertama):CATATAN: Di sini
1
dapat diganti dengan apa punint
untuk jumlah kejadian yang ingin Anda ganti.sumber
Anda cukup menggunakan pemahaman daftar.
Asumsikan bahwa Anda memiliki string:
my name is
dan Anda ingin menghapus karakterm
. gunakan kode berikut:sumber
sumber
Cara lain adalah dengan suatu fungsi,
Di bawah ini adalah cara untuk menghapus semua vokal dari sebuah string, hanya dengan memanggil fungsinya
sumber
String tidak berubah dalam Python sehingga kedua opsi Anda memiliki arti yang sama pada dasarnya.
sumber