多くのプログラミング シナリオでは、文字列内の特定の単語や語句を辞書の値を使用して置換する必要があります。この課題に対処するために、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 サイトの他の関連記事を参照してください。