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

Susan Sarandon
Lepaskan: 2024-10-19 16:02:02
asal
176 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!