Comment supprimer un caractère spécifique d'une chaîne en Python (2023)

/ #Python
How to Remove a Specific Character from a String in Python (1)
Dionysia Lemonaki
How to Remove a Specific Character from a String in Python (2)

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 leremplacer()méthode de chaîne
  • en utilisant letraduire()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 :

  1. Comment supprimer un caractère spécifique d'une chaîne à l'aide de la méthode replace ()
  2. Comment supprimer plusieurs caractères d'une chaîne à l'aide de la méthode replace ()
    1. Supprimer plusieurs caractères avec le chaînage de méthodes
    2. Supprimer plusieurs caractères avec une boucle for
    3. Supprimer plusieurs caractères avec des expressions régulières
  3. Comment supprimer un caractère spécifique d'une chaîne à l'aide de la méthode translate()
  4. 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 leremplacer()méthode sur unchaîne.
  • Leremplacer()La méthode accepte trois arguments :
    • personnageest un argument obligatoire et représente le caractère spécifique que vous souhaitez supprimer dechaîne.
    • remplacementest un argument obligatoire et représente la nouvelle chaîne/caractère qui remplacerapersonnage.
    • compterest un argument optionnel qui représente le nombre maximum depersonnageoccurrences 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é lecompterargumentation, doncremplacer()remplacétousoccurrences de la!caractère avec un vide.

La chaîne d'origine stockée dans une variablema_chaînea quatre occurrences du!personnage.

Si je voulais supprimer seulement trois occurrences du caractère et pas toutes, j'utiliserais lecompterargument et passez une valeur de3pour 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 ApourBoucle

Une autre façon d'y parvenir est d'utiliser leremplacer()méthode à l'intérieur d'unpourboucle:

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é unpourboucle pour parcourir la liste des tuples (si vous avez besoin d'un rappel surpourboucles, donnerCet articleune lecture).

À l'intérieur depourboucle, j'ai utilisé ladansopé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èresconcernantet lesousmé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 unAucunvaleur.

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 valeurAucunen utilisant un itérateur qui parcourait les caractères que je voulais supprimer.

Letraduire()méthode vérifie si chaque caractère dansma_chaîneest é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É

How to Remove a Specific Character from a String in Python (3)
Dionysia Lemonaki

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É

Top Articles
Latest Posts
Article information

Author: Cheryll Lueilwitz

Last Updated: 28/11/2023

Views: 5849

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Cheryll Lueilwitz

Birthday: 1997-12-23

Address: 4653 O'Kon Hill, Lake Juanstad, AR 65469

Phone: +494124489301

Job: Marketing Representative

Hobby: Reading, Ice skating, Foraging, BASE jumping, Hiking, Skateboarding, Kayaking

Introduction: My name is Cheryll Lueilwitz, I am a sparkling, clean, super, lucky, joyous, outstanding, lucky person who loves writing and wants to share my knowledge and understanding with you.