Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Melakukan Penggantian Berbilang Rentetan dengan Cekap Menggunakan Kamus dalam Python?

Bagaimana Melakukan Penggantian Berbilang Rentetan dengan Cekap Menggunakan Kamus dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-10-19 16:02:02176semak imbas

How to Perform Multiple String Replacements Efficiently Using a Dictionary in Python?

Penggantian Berbilang Rentetan dengan Kamus

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn