Alih Keluar Aksara Tertentu daripada Rentetan dalam Python
Apabila bekerja dengan rentetan dalam Python, anda mungkin perlu mengalih keluar aksara tertentu. Cara yang paling biasa untuk melakukan ini ialah menggunakan kaedah replace(). Walau bagaimanapun, malangnya kod berikut nampaknya tidak mengalih keluar sebarang aksara:
for char in line: if char in " ?.!/;:": line.replace(char,'')
Isu dengan kod ini ialah kaedah replace() tidak mengubah suai rentetan di tempatnya. Untuk menggantikan aksara dengan betul, anda perlu menetapkan semula hasil kaedah replace() kembali kepada pembolehubah baris:
for char in " ?.!/;:": line = line.replace(char,'')
Sebagai alternatif, anda boleh menggunakan pendekatan yang lebih ringkas dan cekap:
import string line = line.translate(string.maketrans('', ''), '!@#$')
Kaedah translate() mengambil jadual terjemahan sebagai hujah kedua. Jadual terjemahan ialah rentetan di mana setiap aksara mewakili aksara yang sepadan untuk dialih keluar. Dalam kes ini, jadual terjemahan mengandungi empat aksara: '!', '@', '#' dan '$'. Mana-mana aksara dalam baris yang sepadan dengan salah satu daripada aksara ini akan dialih keluar.
Pilihan lain ialah menggunakan ungkapan biasa:
import re line = re.sub('[!@#$]', '', line)
Kaedah sub() mengambil corak ungkapan biasa sebagai yang pertama hujah. Corak yang disertakan dalam kurungan menentukan aksara yang hendak dialih keluar. Hujah kedua ialah rentetan untuk menggantikan aksara yang sepadan dengan. Dalam kes ini, rentetan kosong digunakan untuk mengalih keluar aksara dengan berkesan.
Untuk Python 3, rentetan diwakili sebagai Unikod dan memerlukan pendekatan yang sedikit berbeza:
unicode_line = unicode_line.translate({ord(c): None for c in '!@#$'})
Kod ini mencipta jadual terjemahan di mana setiap aksara dalam senarai dipetakan kepada Tiada, menunjukkan bahawa ia harus dialih keluar.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksara Tertentu dengan Cekap daripada String dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!