Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Melakukan Penggantian Berbilang Rentetan dengan Cekap Menggunakan Kamus dalam Python?
Dalam banyak senario pengaturcaraan, adalah perlu untuk menggantikan perkataan atau frasa tertentu dalam rentetan menggunakan nilai daripada kamus. Untuk menangani cabaran ini, terdapat beberapa pendekatan yang menggunakan keupayaan manipulasi rentetan kuat Python.
Satu kaedah berkesan melibatkan penggunaan modul semula:
<code class="python">import re s = 'Спорт russianA' d = {'Спорт': 'Досуг', 'russianA': 'englishA'} keys = (re.escape(k) for k in d.keys()) pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b') result = pattern.sub(lambda x: d[x.group()], s)</code>
Kod ini menggunakan re.compile() berfungsi untuk mencipta corak ungkapan biasa (regex) yang sepadan dengan kunci kamus sebagai perkataan keseluruhan. Fungsi re.escape() digunakan untuk menghalang sebarang aksara khas dalam kekunci daripada mengganggu sintaks regex.
Setelah corak dicipta, ia digunakan pada rentetan s menggunakan kaedah sub(). Fungsi lambda yang dihantar ke sub() mengekstrak kunci yang dipadankan daripada objek padanan ungkapan biasa (x) dan menggantikannya dengan nilai yang sepadan daripada kamus (d[x.group()]). Rentetan yang terhasil disimpan dalam pembolehubah hasil.
Dalam contoh ini, output akan menjadi 'Досуг englishA', kerana perkataan 'Спорт' dan 'russianA' dalam rentetan 'Спорт russianA' digantikan dengan nilai daripada kamus.
Adalah penting untuk ambil perhatian bahawa corak regex yang dicipta dalam pendekatan ini sepadan dengan keseluruhan perkataan sahaja. Jika anda memerlukan padanan subrentetan dalam perkataan, corak berbeza boleh digunakan:
<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Walau bagaimanapun, dalam senario ini, anda harus memastikan bahawa kekunci kamus diisih mengikut tertib menurun mengikut panjang untuk mengelakkan subrentetan daripada dipadankan tidak betul.
Atas ialah kandungan terperinci Bagaimana Melakukan Penggantian Berbilang Rentetan dengan Cekap Menggunakan Kamus dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!