Python >> Tutoriel Python >  >> Python

Remplacement de chaîne Python

Il y a quelques années, la société Google a officiellement été renommée Alphabet . Imaginez qu'on vous demande de renommer toutes les occurrences du nom "Google" avec les occurrences du nom "Alphabet" dans les documents internes. Le feriez-vous à la main ? En tant que codeur, vous l'automatiseriez ! Heureusement, le str.replace() de Python vient aider à remplacer les occurrences d'une sous-chaîne dans une chaîne d'origine. Cet article vous montre exactement comment l'utiliser.

Dans sa forme la plus élémentaire, le str.replace(old, new) La méthode crée une nouvelle chaîne remplaçant toutes les occurrences de la sous-chaîne old dans la chaîne str avec la sous-chaîne new . Par exemple, l'expression "Hi Google".replace("Google", "Alphabet") donne la chaîne "Hi Alphabet" . Un troisième argument entier définit la fréquence pour remplacer la sous-chaîne old avec new dans la chaîne d'origine str .

Le str.replace(old, new, count) la méthode recherche la chaîne str de gauche à droite et remplace le premier count occurrences de la chaîne old avec la chaîne new .

Syntaxe :

str.replace(old, new, count)

Arguments :

  • str — la chaîne à modifier.
  • old — la sous-chaîne à rechercher et à remplacer.
  • new — la sous-chaîne qui doit remplacer les occurrences de old .
  • count (optionnel) — le nombre de fois que nous remplaçons les chaînes old avec new . Si count n'est pas spécifié, la valeur par défaut est Infinity :toutes les occurrences sont remplacées.

Valeur de retour :

Le str.replace(old, new, count) la méthode renvoie une nouvelle chaîne après count remplacements du old par le new sous-chaîne ont été effectuées.

Exemples

Avant de découvrir les détails techniques de la méthode str.replace, examinons quelques exemples pratiques.

>>> "Python Python Python Python".replace("Python", "Finxter", 3)
'Finxter Finxter Finxter Python'

Ces trois exemples montrent les utilisations les plus élémentaires de la méthode de remplacement de chaîne en Python :

>>> "Hi Google".replace("Google", "Alphabet")
'Hi Alphabet'
>>> "Hi Google, Google".replace("Google", "Alphabet")
'Hi Alphabet, Alphabet'
>>> "Hi Google, Google".replace("Google", "Alphabet", 1)
'Hi Alphabet, Google'

Les deux premiers exemples montrent que la méthode de remplacement de chaîne remplace toutes les occurrences du premier argument de chaîne ("Google" ) avec le deuxième argument de chaîne ("Alphabet" ) — pas seulement la première occurrence.

Le dernier exemple montre comment vous pouvez remplacer uniquement la première occurrence de l'argument de chaîne "Google" —en spécifiant un troisième argument qui indique le nombre maximum de remplacements.

Vous pouvez l'essayer vous-même dans notre shell Python interactif :

Exercice :Exécutez le code. Quelle est la sortie ? Modifiez le code pour remplacer uniquement les trois premières occurrences du mot 'Google' !

Ensuite, vous découvrirez les détails techniques de la méthode de remplacement de chaîne en Python.

Questions connexes

Explorons quelques questions connexes que vous pourriez avoir concernant le str.replace() méthode.

Dois-je importer la méthode String Replace en Python ?

Non, le str.replace() est une méthode Python intégrée, ce qui signifie que vous n'avez pas besoin d'importer de bibliothèque. Utilisez-le simplement prêt à l'emploi.

La méthode String Replace de Python prend-elle en charge les expressions régulières (Regex) ?

Non. Cela n'aurait aucun sens car si vous êtes d'accord avec la pénalité de performance des expressions régulières, vous pouvez directement utiliser le module d'expression régulière re pour accomplir la même chose sans le string.replace() méthode.

Remplacer la sous-chaîne qui correspond au modèle pattern avec la sous-chaîne new dans la chaîne d'origine str en utilisant le re.sub(pattern, new, str) :

import re

s = "Python Python Py"
print(re.sub("(Python|Py)", "Finxter", s))
# Finxter Finxter Finxter

Dans le code, nous remplaçons toutes les correspondances de la regex (Python|Py) avec la chaîne de remplacement 'Finxter' .

Article connexe : Python Regex Superpower - Le guide ultime

Comment remplacer un caractère dans une chaîne à un certain index ?

Pour remplacer le caractère à la position i avec la chaîne 'x' dans la chaîne str , utilisez simplement la notation de tranche str[:i] + 'x' + str[i+1:] . Voici un exemple où nous remplaçons le caractère en position 3 par la chaîne 'i' .

>>> s = 'Finxter Finxter Finxter'
>>> s[:3] + 'i' + s[4:]
'Finiter Finxter Finxter'

Si vous n'êtes pas sûr du fonctionnement du découpage en Python, lisez le didacticiel de découpage suivant sur le blog Finxter.

Comment supprimer le dernier caractère d'une chaîne en Python ?

Ce problème est une instance particulière du dernier problème. Vous pouvez remplacer le dernier caractère d'une chaîne avec la méthode suivante :

Utiliser le découpage s = s[:-1] pour créer une nouvelle chaîne qui n'inclut pas le dernier caractère de la chaîne s . L'indice négatif -1 signifie que la dernière position est ignorée lors du découpage de la chaîne s . Affectez ensuite le résultat à la chaîne d'origine s .

Voici un exemple :

>>> s = 'My name is'
>>> s = s[:-1]
>>> print(s)
My name i

Le dernier caractère de la chaîne s est supprimé.

Comment supprimer un caractère d'une chaîne en Python ?

Utilisez le string.replace('c', '') pour remplacer toutes les occurrences du caractère 'c' dans la chaîne string . Voici un exemple :

>>> 'ccc d ccc d ccc d ccc'.replace('c', '')
' d  d  d '

En remplaçant toutes les occurrences du caractère 'c' avec la chaîne vide '' , nous les supprimons essentiellement de la chaîne d'origine.

Comment supprimer les espaces d'une chaîne en Python ?

Les chaînes Python n'ont pas de remove() méthode. Au lieu de cela, vous pouvez simplement utiliser le string.replace(' ', '') méthode pour remplacer tous les espaces par une chaîne vide.

Voici un exemple :

>>> 'Solving puzzles with Finxter is fun'.replace(' ', '')
'SolvingpuzzleswithFinxterisfun'

Vous voyez, il n'y a pas besoin d'une méthode de suppression distincte car la méthode de remplacement fonctionne très bien.

Comment remplacer une sous-chaîne dans une chaîne Python ?

Pour remplacer une sous-chaîne, vous utilisez la sous-chaîne comme premier argument de la méthode de remplacement. Supposons que vous souhaitiez remplacer la sous-chaîne 'hello' dans la chaîne d'origine 'hello world, hello!' avec la chaîne de remplacement 'hi' . Voici comment vous y parviendrez :

>>> 'hello world, hello!'.replace('hello', 'hi')
'hi world, hi!'

La méthode de remplacement recherche toutes les occurrences de la sous-chaîne 'hello' et les remplace par la nouvelle chaîne 'hi' .

Histoire Instagram de String Replace

Cette question a été répondue sur le compte Instagram de Finxter. Suivez-nous pour une amélioration continue de Python !