Remplacement de chaîne en Python | Remplacement de chaîne Python [2022]
Publié: 2021-01-02Le remplacement de caractères et de chaînes en Python est une tâche cruciale en matière de nettoyage de données ou de traitement de texte. Vos données peuvent avoir des problèmes de formatage avec des caractères inutiles qui doivent être supprimés, les catégories peuvent avoir des problèmes d'orthographe, etc. De plus, lors du prétraitement du texte pour les problèmes basés sur la PNL, le remplacement de chaîne est l'étape la plus fondamentale et la plus importante lors de la préparation des données textuelles.
Dans ce tutoriel, nous allons passer en revue plusieurs façons de remplacer différents types de chaînes. Si vous souhaitez vous lancer dans la science des données, consultez nos certifications en science des données. À la fin de ce didacticiel, vous aurez les connaissances suivantes :
- Méthode Python replace()
- Méthode Regex sub()
- join() et filter()
- Remplacement de données numériques dans des chaînes
Table des matières
Python remplacer()
La méthode replace(old_str, new_str, count) se compose de 3 arguments :
- old_str : La chaîne ou une partie de la chaîne qui doit être remplacée
- new_str : La chaîne par laquelle l'ancienne chaîne doit être remplacée
- count : le nombre de fois où la chaîne particulière doit être remplacée
Passons en revue quelques exemples pour comprendre le fonctionnement.
Remplacement unique
Mystr = "Ceci est un exemple de chaîne" Newstr = Mystr.replace( 'est' , 'était' ) |
#Sortir: C'était un exemple de chaîne |
Si vous vous en souvenez, les chaînes en Python sont immuables. Ainsi, lorsque nous appelons la méthode de remplacement, elle crée essentiellement un autre objet chaîne avec les données modifiées. De plus, nous n'avons pas spécifié le paramètre count dans l'exemple ci-dessus. Si elle n'est pas spécifiée, la méthode replace remplacera toutes les occurrences de la chaîne.
Remplacement multiple
Mystr = "Ceci est un exemple de chaîne" Newstr = Mystr.replace( "s" , "X" ) |
#Sortir: ThiX iX un Xample Xstring |
Remplacement multiple des n premières occurrences
Si vous ne voulez que les N premières occurrences,
Mystr = "Ceci est un exemple de chaîne" Newstr = Mystr.replace( "s" , "X" , 3 ) |
#Sortir: ThiX iX une chaîne Xample |
Plusieurs chaînes remplacent
Dans les exemples ci-dessus, nous avons remplacé une chaîne un nombre différent de fois. Maintenant, que faire si vous voulez remplacer différentes chaînes dans la même grande chaîne. Nous pouvons écrire une fonction efficace pour cela et le faire en utilisant la même méthode.
Considérez l'exemple ci-dessus, mais maintenant nous voulons remplacer "h", "est" et "ng" par "X".
def MultipleStrings (mainStr, strReplaceList, newStr) : # Itération sur les chaînes à remplacer pour elem dans strReplaceList : # Vérifier si la chaîne est dans la chaîne principale si elem dans mainStr : # Remplacer la chaîne mainStr = mainStr.replace(elem, newStr) retourner mainStr |
Mystr = "Ceci est un exemple de chaîne" Newstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , "X" ) |
#Sortir: TXX X un exemple de striX |
Lire : Tutoriel Python
Remplacer par regex
L'expression régulière de Python est un module spécifiquement conçu pour traiter les données textuelles - qu'il s'agisse de trouver des sous-chaînes, de remplacer des chaînes ou quoi que ce soit. Regex a la fonction sub() pour trouver et remplacer/substituer facilement des sous-chaînes. Passons en revue sa syntaxe et quelques cas d'utilisation.
La fonction regex.sub(pattern, replacement, original_string) prend 3 arguments :
- pattern : la sous-chaîne qui doit être mise en correspondance et remplacée.
- replacement : peut être une chaîne à mettre en place, ou une fonction appelable qui renvoie la valeur à mettre en place.
- original_string : la chaîne principale dans laquelle la sous-chaîne doit être remplacée.
Identique à la méthode de remplacement, regex crée également un autre objet chaîne avec la chaîne modifiée. Passons en revue quelques exemples de travail.
Suppression des espaces blancs
Les espaces blancs peuvent être traités comme des caractères spéciaux et remplacés par d'autres caractères. Dans l'exemple ci-dessous, nous avons l'intention de remplacer les espaces blancs par "X".
importer re Mystr = "Ceci est un exemple de chaîne" # Remplacer tous les espaces blancs dans Mystr par 'X' Newstr = re.sub( r”\s+” , 'X' , Mystr) |
#Sortir: ThisXisXaXsampleXstring |
Comme on le voit, tous les espaces blancs ont été remplacés. Le motif est donné par r"\s+" qui signifie tous les caractères d'espacement.
Suppression de tous les caractères spéciaux
Pour supprimer tous les caractères spéciaux, nous allons passer un modèle qui correspond à tous les caractères spéciaux.
importer re chaîne d'importation Mystr = "Tempo@@&[(000)]%%$@@66isit$$#$%-+Str" motif = r'[' + chaîne.ponctuation + ']' # Remplacer tous les caractères spéciaux d'une chaîne par X Newstr = re.sub(pattern, 'X' , Mystr) |
#Sortir: TempoXXXXX000XXXXXXX66isitXXXXXXXStr |
Suppression de la sous-chaîne comme insensible à la casse

Dans les données réelles, il peut y avoir des cas où il peut y avoir plusieurs versions du même mot avec des caractères majuscules et minuscules différents. Pour les supprimer tous, mettre tous les mots séparément car le modèle ne serait pas efficace. La fonction regex sub() prend le drapeau re.IGNORECASE pour ignorer les cas. Voyons voir comment ça fonctionne.
importer re Mystr = "Ceci EST un exemple d'Istring" # Remplacer la sous-chaîne dans une chaîne avec une approche insensible à la casse Newstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE) |
#Sortir: Th ** ** un échantillon ** chaîne |
Suppression de plusieurs caractères à l'aide de regex
La fonction regex peut facilement supprimer plusieurs caractères d'une chaîne. Ci-dessous un exemple.
importer re Mystr = "Ceci est un exemple de chaîne" motif = r'[hsa]' # Supprime les caractères 'h', 's' et 'a' d'une chaîne Newstr = re.sub(pattern, ” , Mystr) |
#Sortir: Ti i mple tring |
Remplacer en utilisant join()
Une autre façon de supprimer ou de remplacer des caractères consiste à parcourir la chaîne et à les vérifier par rapport à certaines conditions.
charList = [ 'h' , 's' , 'a' ] Mystr = "Ceci est un exemple de chaîne" # Supprime tous les caractères de la liste, de la chaîne Newstr = ” .join((elem pour elem dans Mystr si elem pas dans charList)) |
#Sortir: Ti i mple tring |
Remplacer en utilisant join() et filter()
L'exemple ci-dessus peut également être fait en utilisant la fonction de filtre.
Mystr = "Ceci est un exemple de chaîne" charList = [ 'h' , 's' , 'a' ] # Supprime tous les caractères de la liste, de la chaîne Newstr = "" .join(filter( lambda k: k not in charList , Mystr)) |
#Sortir: Je vais essayer |
Doit lire : Applications Python fascinantes dans le monde réel
Remplacement des numéros
Souvent, les données numériques sont également présentes dans les chaînes qui peuvent devoir être supprimées et traitées séparément en tant que fonctionnalité différente. Passons en revue quelques exemples pour voir comment ceux-ci peuvent être mis en œuvre.
Utiliser l'expression régulière
Considérez la chaîne ci-dessous à partir de laquelle nous devons supprimer les données numériques.
Mystr = "Exemple de chaîne 9211 de l'année 20xx" motif = r'[0-9]' # Faites correspondre tous les chiffres de la chaîne et remplacez-les par une chaîne vide Newstr = re.sub(pattern, "" , Mystr) |
#Sortir: Exemple de chaîne de l'année xx |
Dans le code ci-dessus, nous utilisons le modèle de correspondance r'[0-9]' pour faire correspondre tous les chiffres.
Utilisation de la fonction join()
Nous pouvons également itérer sur la chaîne et filtrer les chiffres à l'aide de la méthode isdigit() qui renvoie False pour les alphabets.
Mystr = "Exemple de chaîne 9211 de l'année 20xx" # Itère sur les caractères de la chaîne et joint tous les caractères sauf les chiffres Newstr = "" .join((item for item in Mystr if not item.isdigit())) |
#Sortir: Exemple de chaîne de l'année xx |
Utiliser join() et filter()
De même, nous pouvons également mettre la condition de filtrage dans la fonction filter pour ne renvoyer que les caractères qui renvoient True .
Mystr = "Exemple de chaîne 9211 de l'année 20xx" # Filtrer tous les chiffres des caractères dans la chaîne et joindre les caractères restants Newstr = "" .join(filter( élément lambda : pas item.isdigit(), Mystr)) |
#Sortir: Exemple de chaîne de l'année xx |
Avant que tu partes
Nous avons couvert de nombreux exemples montrant différentes façons de supprimer ou de remplacer des caractères/espaces/chiffres d'une chaîne. Nous vous recommandons fortement d'essayer plus d'exemples et différentes façons de faire les exemples ci-dessus et aussi plus d'exemples de votre choix.
Si vous êtes curieux d'en savoir plus sur Python, la science des données, consultez le programme Executive PG en science des données de IIIT-B & upGrad qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, du mentorat avec des experts de l'industrie. , 1-on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.
Quel est le besoin de la méthode de remplacement de chaîne en Python ?
Cette fonction devient très utile lorsque vous lui appliquez des techniques de nettoyage des données. Les caractères inutiles ou inutiles peuvent être facilement supprimés à l'aide de cette fonction. Le remplacement de chaînes ou de caractères n'est pas seulement utilisé dans le nettoyage des données, mais également dans le traitement des problèmes de NLP.
Il est important de disposer de ces types de méthodes pour traiter les chaînes, car l'ensemble du domaine de la science des données traite d'énormes blocs de données.
Quels sont les avantages de l'utilisation de types de données de chaîne ?
Les chaînes sont utiles car vous pouvez facilement stocker de grandes quantités de données en utilisant ce type de données. Python prend en charge un bon nombre de méthodes utiles pour effectuer des opérations sur les chaînes. De plus, les chaînes sont modifiables en Python, ce qui réduit la génération d'erreurs et elles sont également moins chères.
La chaîne est l'un des types de données intégrés les plus utilisés en Python. Non seulement en python, mais de nombreux autres langages le prennent également en charge en tant que type de données prédéfini et prennent en charge diverses méthodes pour les utiliser.