

Lors du codage en Python, il peut arriver que vous deviez supprimer un caractère d'une chaîne.
La suppression des caractères des chaînes est pratique si vous travaillez avec des entrées générées par l'utilisateur et que vous devez nettoyer vos données et supprimer les caractères indésirables.
Plus précisément, vous devrez peut-être supprimer une seule instance d'un caractère ou même toutes les occurrences d'un caractère d'une chaîne.
Python offre de nombreuses façons de vous aider à le faire.
Deux des méthodes les plus courantes pour supprimer des caractères de chaînes en Python sont :
- en utilisant le
remplacer()
méthode de chaîne - en utilisant le
traduire()
méthode de chaîne
Lorsque vous utilisez l'une des deux méthodes, vous pouvez spécifier le ou les caractères que vous souhaitez supprimer de la chaîne.
Les deux méthodes remplacent un caractère par une valeur que vous spécifiez. Et si vous spécifiez un caractère vide à la place, le caractère que vous souhaitez supprimer est supprimé sans remplacement.
Une chose à noter lors de l'utilisation de ces méthodes est que la chaîne d'origine n'est pas modifiée car les chaînes sont immuables. Au lieu de cela, les deux méthodes renvoient une nouvelle chaîne modifiée qui ne contient pas les caractères que vous vouliez supprimer.
Dans cet article, vous apprendrez à utiliser les deux méthodes pour supprimer un caractère ou plusieurs caractères d'une chaîne à l'aide d'exemples de codage.
Voici ce que nous couvrirons :
- Comment supprimer un caractère spécifique d'une chaîne à l'aide de la méthode replace ()
- Comment supprimer plusieurs caractères d'une chaîne à l'aide de la méthode replace ()
- Supprimer plusieurs caractères avec le chaînage de méthodes
- Supprimer plusieurs caractères avec une boucle for
- Supprimer plusieurs caractères avec des expressions régulières
- Comment supprimer un caractère spécifique d'une chaîne à l'aide de la méthode translate()
- Comment supprimer plusieurs caractères d'une chaîne à l'aide de la méthode translate ()
Plongeons-nous !
Comment supprimer un caractère spécifique d'une chaîne en Python à l'aide deremplacer()
Méthode
La syntaxe générale de laremplacer()
méthode ressemble à ce qui suit :
string.replace (caractère, remplacement, nombre)
Décomposons-le :
- Vous ajoutez le
remplacer()
méthode sur unchaîne
. - Le
remplacer()
La méthode accepte trois arguments :personnage
est un argument obligatoire et représente le caractère spécifique que vous souhaitez supprimer dechaîne
.remplacement
est un argument obligatoire et représente la nouvelle chaîne/caractère qui remplacerapersonnage
.compter
est un argument optionnel qui représente le nombre maximum depersonnage
occurrences que vous souhaitez supprimer dechaîne
. Si vous n'incluez pascompter
, alors par défaut, leremplacer()
supprimera toutes les occurrences depersonnage
.
Leremplacer()
La méthode ne modifie pas la chaîne d'origine. Au lieu de cela, sa valeur de retour est une copie de la chaîne d'origine sans les caractères que vous vouliez supprimer.
Maintenant, voyonsremplacer()
en action !
Supposons que vous ayez la chaîne suivante et que vous souhaitiez supprimer tous les points d'exclamation :
my_string = "Salut ! Je ! J'adore ! Python !"
Voici comment supprimer toutes les occurrences de!
personnage:
my_string = "Salut ! J'aime ! Python !"my_new_string = my_string.replace("!", "")print(my_new_string)# output# Salut j'aime Python
Dans l'exemple ci-dessus, j'ai ajouté leremplacer()
méthode pourma_chaîne
.
J'ai ensuite stocké le résultat dans une nouvelle variable nomméema_nouvelle_chaîne
.
N'oubliez pas que les chaînes sont immuables. La chaîne d'origine reste inchangée -remplacer()
renvoie une nouvelle chaîne et ne modifie pas celle d'origine.
J'ai précisé que je voulais supprimer le!
caractère et indiqué que je voulais remplacer!
avec un caractère vide.
Je n'ai pas non plus utilisé lecompter
argumentation, doncremplacer()
remplacétousoccurrences de la!
caractère avec un vide.
La chaîne d'origine stockée dans une variablema_chaîne
a quatre occurrences du!
personnage.
Si je voulais supprimer seulement trois occurrences du caractère et pas toutes, j'utiliserais lecompter
argument et passez une valeur de3
pour préciser le nombre de fois que je souhaite remplacer le caractère :
my_string = "Salut ! J'adore ! Python !"my_new_string = my_string.replace("!", "", 3)print(my_new_string)# output# Salut, j'adore Python !
Comment supprimer plusieurs caractères d'une chaîne en Python à l'aide deremplacer()
Méthode
Il peut arriver que vous deviez remplacer plusieurs caractères d'une chaîne.
Dans les sections suivantes, vous verrez trois façons d'y parvenir en utilisant leremplacer()
méthode.
Supprimer plusieurs caractères avec le chaînage de méthodes
Une façon d'y parvenir est d'enchaîner lesremplacer()
méthode comme ceci:
my_string = "Salut !? J'adore !? Python !?"my_new_string = my_string.replace("!","").replace("?","")print(my_new_string)# output# Salut j'adore Python
Cela dit, cette façon de supprimer des caractères peut être assez difficile à lire.
Supprimer plusieurs caractères avec Apour
Boucle
Une autre façon d'y parvenir est d'utiliser leremplacer()
méthode à l'intérieur d'unpour
boucle:
my_string = "Salut !? I!? love !? Python !?"replacements = [('!', ''), ('?', '')]for char, replacement in replacements : if char in my_string: my_string = my_string.replace(char, replacement)print(my_string)# output# Salut j'adore Python
J'ai d'abord créé une chaîne qui contient les deux caractères que je veux supprimer,!
et?
, et l'a stocké dans la variablema_chaîne
.
J'ai stocké les caractères que je veux remplacer, ainsi que leurs remplacements, dans une liste de tuples avec le nomremplaçants
- je veux remplacer!
avec une chaîne vide et?
avec une chaîne vide.
Ensuite, j'ai utilisé unpour
boucle pour parcourir la liste des tuples (si vous avez besoin d'un rappel surpour
boucles, donnerCet articleune lecture).
À l'intérieur depour
boucle, j'ai utilisé ladans
opérateur pour vérifier si les caractères sont à l'intérieur de la chaîne. Et s'ils l'étaient, j'ai utilisé leremplacer()
méthode pour les remplacer.
Enfin, j'ai réaffecté la variable.
Supprimer plusieurs caractères avec des expressions régulières
Et encore une autre façon d'y parvenir est d'utiliser la bibliothèque d'expressions régulièresconcernant
et lesous
méthode.
Vous devez d'abord importer la bibliothèque :
importer re
Ensuite, indiquez le groupe de caractères que vous souhaitez supprimer (dans ce cas, le!
et?
caractères), ainsi que les caractères par lesquels vous souhaitez les remplacer. Dans ce cas, le remplacement est un caractère vide :
import remy_string = "Salut !? J'aime !? Python !?"my_new_string = re.sub('[!?]',"",my_string)print(my_new_string)# output# Salut j'aime Python
Comment supprimer un caractère spécifique d'une chaîne en Python à l'aide detraduire()
Méthode
De même pour leremplacer()
méthode,traduire()
supprime des caractères d'une chaîne.
Cela dit, letraduire()
La méthode est un peu plus compliquée et n'est pas la plus adaptée aux débutants.
Leremplacer()
est la solution la plus simple à utiliser lorsque vous devez supprimer des caractères d'une chaîne.
Lors de l'utilisation dutraduire()
méthode pour remplacer un caractère dans une chaîne, vous devez créer une table de traduction de caractères, oùtraduire()
utilise le contenu du tableau pour remplacer les caractères.
Une table de traduction est un dictionnaire de mappages clé-valeur, et chaque clé est remplacée par une valeur.
Vous pouvez utiliser lecommande()
pour obtenir la valeur Unicode du caractère, puis mapper cette valeur sur un autre caractère.
Cette méthode renvoie une nouvelle chaîne où chaque caractère de l'ancienne chaîne est mappé à un caractère de la table de traduction.
La valeur de retour est une nouvelle chaîne.
Voyons un exemple utilisant le même code des sections précédentes :
my_string = "Salut ! J'adore ! Python !"my_new_string = my_string.translate( { ord("!"): None } )print(my_new_string)# output# Salut j'adore Python
Dans l'exemple ci-dessus, j'ai utilisé lecommande()
fonction pour renvoyer la valeur Unicode associée au caractère que je voulais remplacer, qui dans ce cas était!
.
Ensuite, j'ai mappé cette valeur Unicode surAucun
- un autre mot pour rien ou vide - qui fait en sorte de le supprimer. Plus précisément, il a remplacé chaque instance de la!
personnage avec unAucun
valeur.
Comment supprimer plusieurs caractères d'une chaîne en Python à l'aide detraduire()
Méthode
Que faire si vous devez remplacer plus d'un caractère à l'aide de latraduire()
méthode? Pour cela, vous pouvez utiliser un itérateur comme ceci :
my_string = "Salut !? J'adore !? Python !?"my_new_string = my_string.translate( { ord(i): None for i in '!?'} )print(my_new_string)# output# Salut j'adore Python
Dans l'exemple ci-dessus, j'ai remplacé les deux!
et?
caractères avec la valeurAucun
en utilisant un itérateur qui parcourait les caractères que je voulais supprimer.
Letraduire()
méthode vérifie si chaque caractère dansma_chaîne
est égal à un point d'exclamation ou à un point d'interrogation. Si c'est le cas, il est remplacé parAucun
.
Conclusion
J'espère que cet article vous a aidé à comprendre comment supprimer des caractères d'une chaîne en Python à l'aide de la fonction intégréeremplacer()
ettraduire()
méthodes de chaîne.
Merci d'avoir lu et bon codage !
PUBLICITÉ
PUBLICITÉ
PUBLICITÉ
PUBLICITÉ
PUBLICITÉ
PUBLICITÉ
PUBLICITÉ

Lireplus de messages.
Si cet article vous a été utile, .
Apprenez à coder gratuitement. Le programme open source de freeCodeCamp a aidé plus de 40 000 personnes à obtenir des emplois en tant que développeurs.Commencer
PUBLICITÉ