Zeichenfolge in Python ersetzen | Python-String ersetzen [2022]

Veröffentlicht: 2021-01-02

Das 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.