Lernpfad
Das Trimmen von Text ist eine wichtige Aufgabe beim Umgang mit Textdaten in Python, vor allem beim Bereinigen und Vorbereiten von Daten in Data-Science-Projekten. Durch das Trimmen kannst du unerwünschte Zeichen wie Leerzeichen am Anfang und Ende von Zeichenfolgen entfernen, sodass deine Daten einheitlicher und besser für die Analyse geeignet sind.
In diesem Tutorial zeige ich dir die drei wichtigsten Methoden zum Trimmen von Strings in Python: .strip(), .lstrip() und .rstrip(). Außerdem werde ich konkrete Anwendungsfälle vorstellen, um die Vielseitigkeit und Nützlichkeit dieser Methoden in der Praxis zu zeigen.
3 Methoden zum Trimmen einer Zeichenfolge in Python
Python hat eingebaute Methoden zum Kürzen von Strings, was das Bereinigen und Vorverarbeiten von Textdaten echt einfach macht. Zu diesen Methoden gehören
.strip(): Entfernt die ersten und letzten Zeichen (standardmäßig Leerzeichen)..lstrip(): Entfernt die ersten Zeichen (standardmäßig Leerzeichen) von der linken Seite der Zeichenfolge..rstrip(): Entfernt die letzten Zeichen (standardmäßig Leerzeichen) von der rechten Seite der Zeichenkette.
Wenn man diese Methoden versteht, kann man Texte effizient bearbeiten und aufbereiten, was für jede Data-Science-Aufgabe mit Textdaten super wichtig ist.
1. Entfernen von führenden und nachfolgenden Leerzeichen aus Strings in Python mit .strip()
Die Methode .strip() ist dafür gedacht, sowohl führende als auch nachfolgende Zeichen aus einer Zeichenfolge zu entfernen. Es wird meistens benutzt, um Leerzeichen zu entfernen. Hier ist ein Beispiel, wenn es auf die Zeichenfolge angewendet wird " I love learning Python! ".
text = " I love learning Python! "
trimmed_text = text.strip()
print(trimmed_text) # Output: "I love learning Python!"
Diese Methode ist besonders nützlich, um Zeichenfolgen zu standardisieren, die unterschiedlich viele führende und nachstehende Leerzeichen haben können.
2. Leerzeichen am Anfang von Strings in Python entfernen mit .lstrip()
Die Methode .lstrip() kümmert sich um die linke Seite einer Zeichenfolge und streicht die ersten Zeichen. Standardmäßig werden Leerzeichen entfernt, aber es kann auch so eingestellt werden, dass bestimmte Zeichen entfernt werden. Hier wird die Methode .lstrip() auf dieselbe Zeichenfolge " I love learning Python! " aus dem vorherigen Beispiel angewendet:
text = " I love learning Python! "
left_trimmed_text = text.lstrip()
print(left_trimmed_text) # Output: "I love learning Python! "
.lstrip() Das ist praktisch, wenn du Zeichenfolgen bereinigen musst, die mit unerwünschten Leerzeichen oder Zeichen anfangen, wie zum Beispiel in Namenslisten oder kategorisierten Daten.
3. Entfernen von Leerzeichen am Ende von Strings in Python mit .rstrip()
Die Methode .rstrip() macht .lstrip() komplett, indem sie die Zeichen am Ende einer Zeichenfolge löscht. Es bietet die gleiche Flexibilität bei der Angabe der zu entfernenden Zeichen. Hier wird es auf das gleiche Beispiel wie oben angewendet:
text = " I love learning Python! "
right_trimmed_text = text.rstrip()
print(right_trimmed_text) # Output: " I love learning Python!"
Verwende .rstrip(), wenn du mit Zeichenfolgen arbeitest, die am Ende unerwünschte Zeichen oder Leerzeichen haben, wie zum Beispiel nachgestellte Satzzeichen oder Anmerkungen.
Bestimmte Zeichen aus einer Zeichenfolge in Python löschen
Mit den String-Trimming-Methoden von Python kannst du festlegen, welche Zeichen am Anfang und am Ende von Strings entfernt werden sollen. Diese Funktion macht die Methoden .strip(), .lstrip() und .rstrip() flexibler und ermöglicht gezieltere Zeichenfolgenbereinigungen.
Wie wir aber in unseren Beispielen sehen werden, ist es wichtig, die Einschränkungen dieser Methoden zu kennen: Sie können keine Zeichen aus der Mitte von Zeichenfolgen entfernen oder komplexere musterbasierte Löschungen durchführen. Für solche fortgeschrittenen Anforderungen bieten reguläre Ausdrücke (Regex) eine robustere Lösung.
Bestimmte Zeichen aus einer Zeichenfolge in Python entfernen mit .strip()
Fangen wir mit der Methode .strip() an. Mit der Methode .strip() kannst du nicht nur Leerzeichen, sondern auch bestimmte Zeichen an beiden Enden einer Zeichenfolge entfernen. Hier ein Beispiel:
text = "!!!I love learning Python!!!"
specific_char_trimmed = text.strip('!')
print(specific_char_trimmed) # Output: "I love learning Python"
Stell dir jetzt mal vor, dass unsere Zeichenfolge eigentlich "xxxyyy I love learning Python xxxyyy" ist. Da ”xxx” und ”yyy” sowohl am Anfang als auch am Ende der Zeichenfolge stehen, kannst du sie beide entfernen, indem du das Zeichen xy als zu entfernendes Zeichen angibst. Hier ist es in Aktion!
text = "xxxyyy I love learning Python xxxyyy"
specific_chars_trimmed = text.strip('xy')
print(specific_chars_trimmed) # Output: " I love learning Python "
Wie schon gesagt, ist es wichtig zu wissen, dass .strip() keine Zeichen aus der Mitte der Zeichenfolge löschen kann. Wenn wir zum Beispiel den Text "!!!I love learning!!! Python!!!" entfernen wollen, sieht das Ergebnis so aus: ”I love learning!!! Python”. Für kompliziertere Entfernungsvorgänge solltest du lieber reguläre Ausdrücke checken, statt die in diesem Tutorial beschriebenen Strip-Methoden zu verwenden.
Bestimmte Zeichen aus einer Zeichenfolge in Python entfernen mit .lstrip() und .rstrip()
Das Gleiche gilt für die Methoden .lstrip() und .rstrip(). Hier sind Beispiele, wie man bestimmte Zeichen am Anfang und am Ende in .lstrip() und .rstrip() löscht:
text = "!!!I love learning Python!!!"
left_char_trimmed = text.lstrip('!')
print(left_char_trimmed) # Output: "I love learning Python!!!"
right_char_trimmed = text.rstrip('!')
print(right_char_trimmed) # Output: "!!!I love learning Python"
Außerdem kann man die gleiche Technik zum Entfernen mehrerer Zeichen auch bei .lstrip() und .rstrip()
text = "xxxyyy I love learning Python xxxyyy"
left_chars_trimmed = text.lstrip('xy')
print(left_chars_trimmed) # Output: " I love learning Python xxxyyy"
right_chars_trimmed = text.rstrip('xy')
print(right_chars_trimmed) # Output: "xxxyyy I love learning Python"
Neue Methoden zum Trimmen von Strings in Python 3.9
Python 3.9 hat die Funktionen str.removeprefix() und str.removesuffix() eingeführt, die bekannte Präfixe oder Suffixe explizit entfernen.
Ein Präfix entfernen mit removeprefix()
text = "Python_is_fun"
trimmed_text = text.removeprefix("Python_")
print(trimmed_text) # Output: "is_fun"
Entfernen eines Suffixes mit removesuffix()
text = "data_cleaning.csv"
trimmed_text = text.removesuffix(".csv")
print(trimmed_text) # Output: "data_cleaning"
Leistungsaspekte beim Trimmen von Strings
Bei der Arbeit mit großen Datensätzen ist es wichtig, Zeichenfolgen effizient zu kürzen. Die Funktionen .strip(), .lstrip() und .rstrip() laufen in O(n) Zeitkomplexität. Bei riesigen Datensätzen kann es aber effizienter sein, vektorisierte Operationen in Pandas zu nutzen:
import pandas as pd
df = pd.DataFrame({"text": [" Data Science ", " Machine Learning "]})
df["cleaned_text"] = df["text"].str.strip()
print(df)
Fazit
Das Verständnis von String-Trimming und -Manipulation ist für effektives Programmieren in Python unerlässlich. Während die Methoden .strip(), .lstrip() und .rstrip() die grundlegenden Anforderungen erfüllen, musst du dich für komplexere Szenarien vielleicht mit regulären Ausdrücken beschäftigen. Wenn du mehr wissen willst, schau dir unser Tutorial zu regulären Ausdrücken an oder fang am besten gleich mit dem Lernpfad Natural Language Processing in Python von DataCamp an.
Python von Grund auf lernen

Adel ist Data Science Educator, Speaker und Evangelist bei DataCamp, wo er verschiedene Kurse und Live-Trainings zu Datenanalyse, maschinellem Lernen und Data Engineering veröffentlicht hat. Er setzt sich leidenschaftlich für die Verbreitung von Datenkenntnissen und Datenkompetenz in Organisationen und an der Schnittstelle zwischen Technologie und Gesellschaft ein. Er hat einen MSc in Data Science und Business Analytics. In seiner Freizeit ist er mit seinem Kater Louis unterwegs.
Häufig gestellte Fragen
Kann ich mit .strip(), .lstrip() oder .rstrip() numerische Zeichen aus einer Zeichenfolge löschen?
Ja, du kannst numerische Zeichen als zu löschende Zeichen angeben. Zum Beispiel:
text = "12345Python12345"
trimmed_text = text.strip('12345')
print(trimmed_text) # Output: "Python"Wie gehen .strip(), .lstrip() und .rstrip() mit Zeichenfolgen um, die gemischte Leerzeichen wie Tabulatoren oder Zeilenumbrüche haben?
Standardmäßig werden mit diesen Methoden alle Arten von Leerzeichen entfernt, einschließlich Leerzeichen, Tabulatoren (\t) und Zeilenumbrüche (\n). Zum Beispiel:
text = "\t\n Python Programming \n\t"
trimmed_text = text.strip()
print(trimmed_text) # Output: "Python Programming"Was passiert, wenn ich .strip(), .lstrip() oder .rstrip() auf eine leere Zeichenfolge anwende?
Wenn du diese Methoden auf eine leere Zeichenkette anwendest, geben sie ohne Fehler eine leere Zeichenkette zurück. Zum Beispiel:
text = ""
trimmed_text = text.strip()
print(trimmed_text) # Output: ""