Auf dieser Seite

Python-Strings: Umwandeln, Bereinigen, Finden und Formatieren

Strings sind der Datentyp, mit dem Sie in Python am häufigsten arbeiten: Benutzereingaben, Dateiinhalte, Webseiten und CSV-Zeilen treffen alle als Text ein. Man unterschätzt sie leicht, denn ein Python-String ist unveränderlich — keine Methode verändert ihn an Ort und Stelle; jede Operation gibt einen neuen String zurück. Diese Seite ordnet alle 115 DelftStack-String-Anleitungen nach der Aufgabe, die Sie gerade erledigen, entlang vier Arbeitslinien: Text in andere Typen umwandeln und zurück, Zeichen entfernen, die nicht dazugehören, finden und prüfen, was ein String enthält, und Text für die Ausgabe formatieren oder ersetzen.

Python-String-Operationen auf einen Blick: Text umwandeln, bereinigen, finden und formatieren

Der Lernpfad für Strings

Beginnen Sie mit fünf Minuten Grundlagen: wie Strings aufgebaut sind, wie Indizierung und Slicing funktionieren und warum Unveränderlichkeit bedeutet, dass Sie den Rückgabewert immer aufbewahren müssen. Lernen Sie danach Suchen und Bereinigen — find(), der in-Operator, strip() und replace() erledigen den größten Teil der täglichen Textarbeit. Weiter geht es mit der Umwandlung, bei der Strings mit Listen, Zahlen, Dictionaries und Bytes die Plätze tauschen. Den Abschluss bilden Formatieren und Ersetzen, wo F-Strings der Standard sind und die älteren Stile nur dort auftreten, wo sie sich ihren Platz noch verdienen. Jeder der folgenden Schritte ist eine Gruppe auf dieser Seite, in der Reihenfolge, in der man sie lernt.

Fünf-Minuten-Grundlagen: Erstellen, Verbinden und Wiederholen

Ein String ist eine Folge von Zeichen in einfachen oder doppelten Anführungszeichen; dreifache Anführungszeichen spannen mehrere Zeilen, und mit Indizierung und Slicing lesen Sie jeden beliebigen Teil. Zwei Fakten erledigen den größten Teil der Arbeit: len() misst einen String, und wer einen längeren baut, erzeugt immer einen neuen Wert.

Umwandeln: Strings in Listen, Zahlen und zurück

Bei der Umwandlung verdient die String-Arbeit ihr Geld: Daten treffen als Text ein und werden als etwas anderes verwendet. Listen sind die belebteste Tür, Zahlen die nächste; Container werden mit str() oder join() flach, und Bytes wechseln nur über ausdrückliche Kodierungen die Seite. Ein Nachbar wohnt anderswo: Ein datetime in einen String zu verwandeln, gehört zu den Datetime-Anleitungen — siehe den Datetime-Abschnitt der Python-Säule.

Bereinigen und Löschen: Entfernen, was nicht dazugehört

Bereinigen ist die Heimdisziplin dieses Clusters: Gescrapte Seiten, Exporte und Benutzereingaben treffen mit Zeichen ein, die nie eingeladen waren. Wählen Sie nach der Form des Schmutzes: replace() für einen bekannten Teilstring, translate() mit einer Tabelle für eine ganze Zeichenmenge auf einmal und reguläre Ausdrücke, wenn der Schmutz ein Muster ist, kein Literal.

Finden, Prüfen und Zählen

Finden ist der größte ungedeckte Bedarf dieses Clusters: Leser kennen das Zeichen, das sie wollen, und brauchen seine Position, seine Anzahl oder eine Ja-oder-Nein-Antwort. Halten Sie die Arbeitsteilung sauber — in beantwortet das Ob, find() das erste Wo, index() das Wo und beschwert sich lautstark, wenn es keine Übereinstimmung gibt, und count() das Wie-viele.

Groß-/Kleinschreibung, Vergleich und Auffüllen

Bei der Schreibweise gehen Vergleiche still schief: Python vergleicht nach Unicode-Codepunkt, also zählen Groß-/Kleinschreibung und Sonderbuchstaben alle mit. Normalisieren Sie vor dem Vergleich — lower() oder upper() für gewöhnlichen Text, casefold(), wenn Unicode-Paare übereinstimmen müssen — und füllen Sie mit ljust(), rjust(), center() oder zfill() für die Darstellung auf.

Formatieren und Ersetzen

Formatieren heißt für neuen Code F-Strings: Die Werte stehen im Template, wo man sie lesen kann, und Formatspezifikationen steuern Breite und Genauigkeit. str.format() bleibt richtig, wenn das Template separat liegt oder wiederverwendet wird, und die %-Formatierung überlebt in älterem Code, dem Sie weiterhin begegnen werden. Ersetzen gehorcht der Unveränderlichkeit wie alles andere — Sie bearbeiten keinen String, Sie bauen den korrigierten.

Karte der String-Methoden

Python liefert 47 eingebaute String-Methoden mit, und diese Karte findet schnell die richtige. Lesen Sie sie nach Verb: Die is*-Familie prüft, Groß-/Kleinschreibungs-Methoden verwandeln, split und join zerlegen und bauen neu auf, Suchmethoden lokalisieren. Wo eine Anleitung eine Methode vertieft, verlinkt die dritte Spalte dorthin; eine leere Zelle bedeutet, die Ein-Zeilen-Beschreibung genügt.

Methode Was sie tut Vertiefung
capitalize() Erstes Zeichen groß, den Rest klein schreiben Vertiefung
casefold() Aggressive Kleinschreibung, gebaut für schreibweisen-unabhängigen Abgleich Vertiefung
center() Den String in einem Feld gegebener Breite zentrieren Vertiefung
count() Nicht überlappende Vorkommen eines Teilstrings zählen Vertiefung
encode() Den String in einer gewählten Kodierung in Bytes kodieren Vertiefung
endswith() Prüfen, ob der String mit einem Suffix endet
expandtabs() Tabulatorzeichen durch Leerzeichen ersetzen
find() Niedrigster Index eines Teilstrings, oder -1, wenn er fehlt Vertiefung
format() Werte in {}-Platzhalter formatieren Vertiefung
format_map() Wie format(), mit Werten aus einem Mapping
index() Niedrigster Index eines Teilstrings; löst ValueError aus, wenn er fehlt Vertiefung
isalnum() Wahr, wenn jedes Zeichen ein Buchstabe oder eine Ziffer ist Vertiefung
isalpha() Wahr, wenn jedes Zeichen alphabetisch ist
isascii() Wahr, wenn jedes Zeichen ASCII ist
isdecimal() Wahr, wenn jedes Zeichen eine Dezimalziffer ist
isdigit() Wahr, wenn jedes Zeichen eine Ziffer ist Vertiefung
isidentifier() Wahr, wenn der String ein gültiger Python-Bezeichner ist
islower() Wahr, wenn alle Buchstaben klein geschrieben sind
isnumeric() Wahr, wenn jedes Zeichen numerisch ist
isprintable() Wahr, wenn jedes Zeichen druckbar ist
isspace() Wahr, wenn jedes Zeichen Whitespace ist
istitle() Wahr, wenn der String in Titelschreibweise steht
isupper() Wahr, wenn alle Buchstaben groß geschrieben sind
join() Ein Iterable von Strings mit diesem String als Trennzeichen verbinden Vertiefung
ljust() In einem Feld gegebener Breite linksbündig ausrichten Vertiefung
lower() Eine kleingeschriebene Kopie zurückgeben Vertiefung
lstrip() Führende Zeichen entfernen (standardmäßig Whitespace)
maketrans() Eine Übersetzungstabelle für translate() bauen Vertiefung
partition() Am ersten Trennzeichen in ein Drei-Teile-Tupel aufteilen
removeprefix() Ein Präfix entfernen, wenn es vorhanden ist
removesuffix() Ein Suffix entfernen, wenn es vorhanden ist
replace() Vorkommen eines Teilstrings durch einen anderen ersetzen Vertiefung
rfind() Höchster Index eines Teilstrings, oder -1, wenn er fehlt Vertiefung
rindex() Höchster Index eines Teilstrings; löst ValueError aus, wenn er fehlt
rjust() In einem Feld gegebener Breite rechtsbündig ausrichten Vertiefung
rpartition() Am letzten Trennzeichen in ein Drei-Teile-Tupel aufteilen
rsplit() An einem Trennzeichen teilen, von rechts zählend
rstrip() Abschließende Zeichen entfernen (standardmäßig Whitespace)
split() An einem Trennzeichen in eine Liste teilen Vertiefung
splitlines() An Zeilengrenzen in eine Liste teilen
startswith() Prüfen, ob der String mit einem Präfix beginnt Vertiefung
strip() Führende und abschließende Zeichen entfernen Vertiefung
swapcase() Eine Kopie mit vertauschter Schreibweise jedes Zeichens zurückgeben
title() Eine Kopie in Titelschreibweise zurückgeben, jedes Wort groß begonnen
translate() Zeichen über eine Übersetzungstabelle abbilden Vertiefung
upper() Eine großgeschriebene Kopie zurückgeben Vertiefung
zfill() Mit führenden Nullen auf eine gegebene Breite auffüllen Vertiefung

Häufig gestellte Fragen

Wie wandle ich einen String in Python in eine Liste um?

Entscheiden Sie, was ein Element sein soll, und wählen Sie dann das passende Werkzeug. list(text) liefert ein Element pro Zeichen; text.split() liefert Wörter, und text.split(",") liefert durch Trennzeichen getrennte Felder, wobei leere Felder erhalten bleiben. Für Text, der bereits wie eine Python-Liste aussieht, parsen Sie ihn mit ast.literal_eval() und prüfen Sie, dass das Ergebnis wirklich eine Liste ist. Verwenden Sie niemals eval() auf Eingaben, die Sie nicht kontrollieren. Die vollständige Anleitung ist Eine Zeichenkette in Python in eine Liste umwandeln.

Wie prüfe ich, ob ein String einen Teilstring oder ein Wort enthält?

Für einen einfachen Teilstring-Test verwenden Sie den in-Operator: "word" in text gibt einen booleschen Wert zurück und unterscheidet Groß-/Kleinschreibung. Wenn Sie auch die Position brauchen, gibt find() den ersten Index oder -1 zurück, während index() stattdessen ValueError auslöst. Beachten Sie, dass in auch innerhalb größerer Wörter trifft — "is" in "This" ist wahr — tokenisieren Sie daher für ein ganzes Wort oder verwenden Sie eine Regex mit \b-Grenzen, wie in Überprüfen Sie, ob eine Zeichenkette Word in Python enthält gezeigt.

Wie entferne ich Satzzeichen oder Sonderzeichen aus einem String?

Definieren Sie zuerst, was weg muss: nur Satzzeichen oder alles, was kein Buchstabe und keine Ziffer ist. Für Satzzeichen filtern Sie gegen string.punctuation, ersetzen mit der Regex [^\w\s] oder löschen eine ganze Menge auf einmal mit einer str.translate()-Tabelle aus maketrans() — die schnellste Option. Für breiteres Bereinigen behält ein isalnum()-Filter Unicode-Buchstaben und -Ziffern. Wie man in Python die Interpunktion von einer Zeichenkette entfernt führt jede Variante durch.

Warum sagt Python „not all arguments converted during string formatting"?

Dieser TypeError kommt aus der %-Formatierung: Das Template enthält weniger Platzhalter als das übergebene Werte-Tupel, sodass Python mit übrigen Argumenten am Ende des Templates ankommt — zum Beispiel bei "Value: " % (1, 2). Geben Sie jedem Wert genau einen Platzhalter, verpacken Sie einen einzelnen Wert in ein Ein-Element-Tupel und escapen Sie ein literales Prozentzeichen als %%`. Die eigene Fehler-Anleitung zerlegt die Meldung Fall für Fall.

Gibt es ein toString() in Python?

Nein. Python hat keine toString()-Methode; danach zu suchen, ist eine aus Java mitgebrachte Gewohnheit. Die Entsprechung ist das eingebaute str(value), das für Zahlen, Sammlungen und die meisten Objekte einen lesbaren String zurückgibt. Verwenden Sie join(), um viele Strings zu verbinden, F-Strings, um Nachrichten zu bauen, und definieren Sie __str__() in eigenen Klassen, um zu steuern, wie sie sich ausgeben. Beachten Sie, dass str() Anzeigetext erzeugt, kein JSON oder CSV. Siehe Entsprechung für tostring() in Python.

Wie ersetze ich ein Zeichen an einem bestimmten Index?

Sie können nicht in einen String hineinschreiben — text[2] = "m" löst TypeError aus, weil Strings unveränderlich sind. Bauen Sie stattdessen den Ersatz: Slicing um die Position, text[:2] + "m" + text[3:], oder in eine Liste umwandeln, am Index zuweisen und mit "".join(...) wieder verbinden. Beides gibt einen neuen String zurück und lässt das Original unberührt; validieren Sie den Index gegen len(text), wenn er aus Benutzereingaben stammt. Ersetzen von Zeichen in String bei Index in Python zeigt beides.

Alle Python-String-Anleitungen

Grundlagen

Konvertieren

Bereinigen und Löschen

Finden, Prüfen und Zählen

Groß-/Kleinschreibung, Vergleich und Auffüllen

Formatieren und Ersetzen

Weitere String-Artikel