Python で辞書を使用して複数の文字列置換を効率的に実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-19 16:02:02
オリジナル
176 人が閲覧しました

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

辞書を使用した複数の文字列置換

多くのプログラミング シナリオでは、文字列内の特定の単語や語句を辞書の値を使用して置換する必要があります。この課題に対処するために、Python の強力な文字列操作機能を利用するアプローチがいくつかあります。

効果的な方法の 1 つは、re モジュールの使用です。

<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>
ログイン後にコピー

このコードは re.compile() を利用します。辞書のキーに単語全体として一致する正規表現 (regex) パターンを作成する関数。 re.escape() 関数は、キー内の特殊文字が正規表現構文に干渉するのを防ぐために使用されます。

パターンが作成されると、sub() メソッドを使用して文字列 s に適用されます。 sub() に渡されるラムダ関数は、正規表現一致オブジェクト (x) から一致したキーを抽出し、それを辞書 (d[x.group()]) の対応する値に置き換えます。結果の文字列は結果変数に保存されます。

この例では、文字列 'Спорт russianA' 内の単語 'Спорт' と 'russianA' がそれらの単語に置き換えられるため、出力は 'Досуг englishA' になります。

このアプローチで作成された正規表現パターンは単語全体にのみ一致することに注意することが重要です。単語内の部分文字列の一致が必要な場合は、別のパターンを使用できます:

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
ログイン後にコピー

ただし、このシナリオでは、部分文字列が一致しないように、辞書キーが長さの降順でソートされていることを確認する必要があります。間違っています。

以上がPython で辞書を使用して複数の文字列置換を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!