Maison > développement back-end > Tutoriel Python > Comment effectuer plusieurs remplacements de chaînes à l'aide de dictionnaires ?

Comment effectuer plusieurs remplacements de chaînes à l'aide de dictionnaires ?

Mary-Kate Olsen
Libérer: 2024-10-19 16:05:02
original
583 Les gens l'ont consulté

How to Perform Multiple String Replacements Using Dictionaries?

Remplacements multiples dans les chaînes à l'aide de dictionnaires

Étant donné un dictionnaire d mappant un ensemble de clés aux remplacements souhaités et une chaîne s contenant ces clés, comment pouvez-vous remplacer chaque occurrence d'une clé dans s par sa valeur correspondante dans d ?

Solution :

L'utilisation du module re de Python permet des remplacements multiples efficaces dans les chaînes en utilisant dictionnaires :

<code class="python">import re

s = 'Спорт not 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)

print(result)  # Output: 'Досуг not englishA'</code>
Copier après la connexion

Cette approche utilise un modèle d'expression régulière qui correspond à des mots entiers correspondant à l'une des clés de d. La fonction lambda dans la méthode sub effectue la substitution en utilisant d.

Pour permettre les remplacements à l'intérieur des mots et pas seulement aux limites des mots, modifiez le modèle :

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Copier après la connexion

Dans ce cas, triez le dictionnaire clés décroissantes par longueur pour empêcher les correspondances de sous-chaînes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal