Zeichenfolge in Python ersetzen | Python-String ersetzen [2022]
Veröffentlicht: 2021-01-02Das Ersetzen von Zeichen und Zeichenfolgen in Python ist eine entscheidende Aufgabe, wenn es um Datenbereinigung oder Textverarbeitung geht. Ihre Daten könnten Formatierungsprobleme mit überflüssigen Zeichen haben, die entfernt werden müssen, die Kategorien könnten Rechtschreibprobleme haben usw. Auch bei der Textvorverarbeitung für NLP-basierte Probleme ist das Ersetzen von Zeichenfolgen der grundlegendste und wichtigste Schritt beim Vorbereiten der Textdaten.
In diesem Tutorial werden wir verschiedene Möglichkeiten zum Ersetzen verschiedener Arten von Zeichenfolgen durchgehen. Wenn Sie an Data Science interessiert sind, sehen Sie sich unsere Data Science-Zertifizierungen an. Am Ende dieses Tutorials verfügen Sie über folgende Kenntnisse:
- Python-replace()-Methode
- Regex sub()-Methode
- join() und filter()
- Ersetzen numerischer Daten in Zeichenfolgen
Inhaltsverzeichnis
Python ersetzen ()
Die Methode replace(old_str, new_str, count) besteht aus 3 Argumenten:
- old_str: Der String oder ein Teil des Strings, der ersetzt werden muss
- new_str: Der String, durch den der alte String ersetzt werden muss
- count: Die Anzahl der Male, die die bestimmte Zeichenfolge ersetzt werden muss
Lassen Sie uns ein paar Beispiele durchgehen, um die Funktionsweise zu verstehen.
Einzeln ersetzen
Mystr = „Dies ist eine Beispielzeichenfolge“ Newstr = Mystr.replace( 'ist' , 'war' ) |
#Ausgabe: Das war ein Beispiel-String |
Wenn Sie sich erinnern, sind Strings in Python unveränderlich. Wenn wir also die Methode replace aufrufen, erstellt sie im Wesentlichen ein weiteres String-Objekt mit den geänderten Daten. Außerdem haben wir im obigen Beispiel den Parameter count nicht angegeben. Wenn nicht angegeben, ersetzt die replace-Methode alle Vorkommen der Zeichenfolge.
Mehrfach ersetzen
Mystr = „Dies ist eine Beispielzeichenfolge“ Newstr = Mystr.replace( „s“ , „X“ ) |
#Ausgabe: ThiX iX ein Xample Xtring |
Mehrfaches Ersetzen der ersten n Vorkommen
Wenn Sie nur die ersten N Vorkommen wollen,
Mystr = „Dies ist eine Beispielzeichenfolge“ Newstr = Mystr.replace( „s“ , „X“ , 3 ) |
#Ausgabe: ThiX iX ein Xample-String |
Mehrere Zeichenfolgen ersetzen
In den obigen Beispielen haben wir eine Zeichenfolge unterschiedlich oft ersetzt. Was ist nun, wenn Sie verschiedene Saiten in derselben großen Saite ersetzen möchten? Wir können eine effektive Funktion dafür schreiben und es mit der gleichen Methode erledigen.
Betrachten Sie das obige Beispiel, aber jetzt wollen wir „h“, „is“ und „ng“ durch „X“ ersetzen.
def MultipleStrings (mainStr, strReplaceList, newStr) : # Iteration über die zu ersetzenden Strings für elem in strReplaceList : # Überprüfen, ob der String im Hauptstring enthalten ist if elem in mainStr : # Ersetzen Sie die Zeichenfolge mainStr = mainStr.replace(elem, newStr) zurück mainStr |
Mystr = „Dies ist eine Beispielzeichenfolge“ Newstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , „X“ ) |
#Ausgabe: TXX X ein Muster striX |
Lesen Sie: Python-Tutorial
Ersetzen durch Regex
Pythons Regex ist ein Modul speziell für den Umgang mit Textdaten – sei es das Finden von Teilstrings, das Ersetzen von Strings oder irgendetwas anderes. Regex hat die Funktion sub(), um Teilzeichenfolgen einfach zu finden und zu ersetzen/ersetzen. Lassen Sie uns die Syntax und einige Anwendungsfälle durchgehen.
Die Funktion regex.sub(pattern, replacement, original_string) akzeptiert 3 Argumente:
- Muster: die Teilzeichenfolge, die abgeglichen und ersetzt werden muss.
- Ersatz: kann eine Zeichenfolge sein, die eingefügt werden muss, oder eine aufrufbare Funktion, die den Wert zurückgibt, der eingefügt werden muss.
- original_string: der Hauptstring, in dem der Teilstring ersetzt werden muss.
Genau wie die Methode replace erstellt auch Regex ein weiteres String-Objekt mit dem geänderten String. Lassen Sie uns ein paar Arbeitsbeispiele durchgehen.
Leerzeichen entfernen
Whitespaces können als Sonderzeichen behandelt und durch andere Zeichen ersetzt werden. Im folgenden Beispiel wollen wir Leerzeichen durch „X“ ersetzen.
importieren re Mystr = „Dies ist eine Beispielzeichenfolge“ # Alle Leerzeichen in Mystr durch 'X' ersetzen Newstr = re.sub( r”\s+” , 'X' , Mystr) |
#Ausgabe: DiesesXistXaXsampleXstring |
Wie wir sehen, wurden alle Leerzeichen ersetzt. Das Muster wird durch r"\s+" angegeben, was alle Leerzeichen bedeutet.
Alle Sonderzeichen entfernen
Um alle Sonderzeichen zu entfernen, übergeben wir ein Muster, das mit allen Sonderzeichen übereinstimmt.
importieren re Zeichenkette importieren Mystr = „Tempo@@&[(000)]%%$@@66isit$$#$%-+Str“ Muster = r'[' + string.interpunktion + ']' # Alle Sonderzeichen in einem String durch X ersetzen Newstr = re.sub(Muster, 'X' , Mystr) |
#Ausgabe: TempoXXXX000XXXXXXX66besuchXXXXXXXStr |
Entfernen der Teilzeichenfolge, da die Groß-/Kleinschreibung nicht beachtet wird

In realen Daten kann es Fälle geben, in denen es viele Versionen desselben Wortes mit unterschiedlichen Groß- und Kleinbuchstaben gibt. Um sie alle zu entfernen, setzen Sie alle Wörter separat ein, da das Muster nicht effektiv wäre. Die Regex-Funktion sub() verwendet das Flag re.IGNORECASE, um die Groß- und Kleinschreibung zu ignorieren. Mal sehen, wie es funktioniert.
importieren re Mystr = „Dies IST ein Beispiel-Istring“ # Substring in einem String durch einen Ansatz ohne Berücksichtigung der Groß-/Kleinschreibung ersetzen Newstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE) |
#Ausgabe: Th** ** ein Beispiel ** tring |
Mehrere Zeichen mit Regex entfernen
Die Regex-Funktion kann problemlos mehrere Zeichen aus einer Zeichenfolge entfernen. Unten ist ein Beispiel.
importieren re Mystr = „Dies ist eine Beispielzeichenfolge“ Muster = r'[hsa]' # Entferne die Zeichen 'h', 's' und 'a' aus einem String Newstr = re.sub(Muster, ” , Mystr) |
#Ausgabe: Ti i mple Tring |
Ersetzen mit join()
Eine andere Möglichkeit, Zeichen zu entfernen oder zu ersetzen, besteht darin, die Zeichenfolge zu durchlaufen und sie auf eine bestimmte Bedingung zu prüfen.
charList = [ 'h' , 's' , 'a' ] Mystr = „Dies ist eine Beispielzeichenfolge“ # Alle Zeichen in der Liste aus der Zeichenfolge entfernen Newstr = ” .join((elem für elem in Mystr wenn elem nicht in charList)) |
#Ausgabe: Ti i mple Tring |
Ersetzen mit join() und filter()
Das obige Beispiel kann auch mit der Filterfunktion durchgeführt werden.
Mystr = „Dies ist eine Beispielzeichenfolge“ charList = [ 'h' , 's' , 'a' ] # Alle Zeichen in der Liste aus der Zeichenfolge entfernen Newstr = „“ .join(filter( lambda k: k not in charList , Mystr)) |
#Ausgabe: Ich versuche es einfach |
Muss gelesen werden: Faszinierende Python-Anwendungen in der realen Welt
Zahlen ersetzen
Oft sind die numerischen Daten auch in den Zeichenfolgen vorhanden, die möglicherweise entfernt und als anderes Merkmal separat verarbeitet werden müssen. Sehen wir uns einige Beispiele an, um zu sehen, wie diese implementiert werden können.
Verwenden von Regex
Betrachten Sie die folgende Zeichenfolge, aus der wir die numerischen Daten entfernen müssen.
Mystr = „Beispielzeichenfolge 9211 des Jahres 20xx“ Muster = r'[0-9]' # Passen Sie alle Ziffern in der Zeichenfolge an und ersetzen Sie sie durch eine leere Zeichenfolge Newstr = re.sub(Muster, “” , Mystr) |
#Ausgabe: Beispielzeichenfolge des Jahres xx |
Im obigen Code verwenden wir das Übereinstimmungsmuster r'[0-9]' , um alle Ziffern abzugleichen.
Verwenden der Funktion join()
Wir können den String auch iterieren und die Ziffern mit der Methode isdigit() herausfiltern , die False für Alphabete zurückgibt.
Mystr = „Beispielzeichenfolge 9211 des Jahres 20xx“ # Iteriert über die Zeichen in der Zeichenfolge und verbindet alle Zeichen außer Ziffern Newstr = „“ .join((Artikel für Artikel in Mystr , wenn nicht item.isdigit())) |
#Ausgabe: Beispielzeichenfolge des Jahres xx |
Mit join() und filter()
Auf ähnliche Weise können wir auch die Filterbedingung in die Filterfunktion einfügen, um nur die Zeichen zurückzugeben, die True zurückgeben .
Mystr = „Beispielzeichenfolge 9211 des Jahres 20xx“ # Filtern Sie alle Ziffern aus Zeichen in der Zeichenfolge und verbinden Sie die verbleibenden Zeichen Newstr = „“ .join(filter( Lambda item: not item.isdigit(), Mystr)) |
#Ausgabe: Beispielzeichenfolge des Jahres xx |
Bevor du gehst
Wir haben viele Beispiele behandelt, die verschiedene Möglichkeiten zum Entfernen oder Ersetzen von Zeichen/Leerzeichen/Zahlen aus einer Zeichenfolge zeigen. Wir empfehlen Ihnen dringend, weitere Beispiele und verschiedene Möglichkeiten zur Durchführung der obigen Beispiele sowie weitere eigene Beispiele auszuprobieren.
Wenn Sie mehr über Python und Data Science erfahren möchten, besuchen Sie das Executive PG Program in Data Science von IIIT-B & upGrad, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops und Mentoring mit Branchenexperten bietet , 1-zu-1 mit Mentoren aus der Branche, über 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.
Was ist die Notwendigkeit für die String-Replace-Methode in Python?
Diese Funktion ist sehr nützlich, wenn Sie Datenbereinigungstechniken darauf anwenden. Unnötige oder überflüssige Zeichen können mit dieser Funktion einfach entfernt werden. Das Ersetzen von Zeichenfolgen oder Zeichen wird nicht nur bei der Datenbereinigung, sondern auch bei der Verarbeitung von Problemen von NLP verwendet.
Es ist wichtig, diese Art von Methoden für den Umgang mit Zeichenfolgen zu haben, da der gesamte Bereich der Datenwissenschaft mit riesigen Datenmengen zu tun hat.
Welche Vorteile bietet die Verwendung von String-Datentypen?
Zeichenfolgen sind nützlich, da Sie mit diesem Datentyp problemlos große Datenmengen speichern können. Python unterstützt eine ganze Reihe nützlicher Methoden, um Operationen mit Strings auszuführen. Außerdem sind Zeichenfolgen in Python veränderbar, was die Fehlergenerierung reduziert und sie sind auch weniger teuer.
Der String ist einer der am häufigsten verwendeten integrierten Datentypen in Python. Nicht nur in Python, sondern auch viele andere Sprachen unterstützen dies als vordefinierten Datentyp und unterstützen verschiedene Methoden, um damit zu arbeiten.