In der Pro­gram­mier­spra­che Python gibt es ver­schie­de­ne Wege, Sub­strings zu erstellen oder das Vorkommen von Sub­strings innerhalb einer Zei­chen­ket­te zu prüfen.

Was ist ei­gent­lich ein Substring?

Ein Substring ist im Grunde genommen nichts anderes als ein Teil eines Python Strings. Bei Strings handelt es sich um Zei­chen­ket­ten be­lie­bi­ger Größe. In­ter­es­sie­ren Sie sich nur für einen Teil einer solchen Zei­chen­ket­te und ex­tra­hie­ren diesen, erhalten Sie einen so­ge­nann­ten Substring. Ein einfaches Beispiel ist die Zei­chen­ket­te „Hello World!“, die Sie bei­spiels­wei­se in die zwei Sub­strings „Hello“ und „World!“ aufteilen könnten. Beachten Sie, dass es sich bei Sub­strings nicht unbedingt um einzelne Wörter handelt. Jeder Buchstabe und jedes Zeichen aus einer Zei­chen­ket­te für sich be­trach­tet wäre ebenfalls ein eigener Substring.

Tipp

Wenn Sie sich für die Pro­gram­mie­rung in Python aufgrund eines Web­pro­jekts in­ter­es­sie­ren, lohnt sich ein Blick auf Deploy Now von IONOS. Dank eines au­to­ma­ti­sier­ten GitHub Workflows können Sie Ihre Web­pro­jek­te ganz einfach deployen und builden.

Einen Python Substring erstellen

Slicing

Wenn Sie Python-Code schreiben möchten, der einen Substring für Sie erstellt, dann ist die hierfür wohl be­kann­tes­te Funk­tio­na­li­tät aus Python das so­ge­nann­te Slicing. Slicing er­mög­licht es Ihnen, anhand von Indizes zu bestimmen, wo Ihr Substring beginnen und wo er enden soll. Die Indizes übergeben Sie in eckigen Klammern, getrennt durch einen Dop­pel­punkt. Dabei ist der Start­in­dex inklusiv, der Endindex jedoch exklusiv. Die Syntax des Slicings in Python sieht also wie folgt aus:

string[start:ende]

Ein konkretes Code­bei­spiel hilft dabei, sich das Slicing zu ver­an­schau­li­chen:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s[0:6]

Zunächst wird eine Zei­chen­ket­te namens „s“ erstellt. In der zweiten Zeile des Code­bei­spiels sehen Sie das Slicing. Hinter dem Namen der Zei­chen­ket­te wird in eckigen Klammern zunächst der Start­in­dex 0, gefolgt von einem Dop­pel­punkt, und dann der Endindex 6 angegeben. Dies hat zur Folge, dass in der Variable namens „ergebnis“ die Teil­zei­chen­ket­te von „s“ ge­spei­chert wird, die aus dem nullten bis ein­schließ­lich dem fünften Zeichen besteht. In unserem Fall enthielte die Variable „ergebnis“ also das Wort „Python“.

Wenn Sie einen String vom Anfang an oder aber bis zum Ende hin slicen möchten, können Sie die Schreib­wei­se des Python Slicings noch verkürzen: Geben Sie keinen Start­in­dex an, wird per Default einfach der Index 0 aus­ge­wählt. Lassen Sie hingegen den Endindex weg, erstellen Sie mit Slicing einen Python Substring, der bis zum Ende der ur­sprüng­li­chen Zei­chen­ket­te reicht.

Auch wenn Sie von hinten anfangen möchten, Sub­strings aus Ihrem ur­sprüng­li­chen Python String zu ex­tra­hie­ren, können Sie eine Kurz­schreib­wei­se nutzen, die von negativen Indizes Gebrauch macht:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s[-19:]

Im obigen Code­bei­spiel enthält die Variable namens „ergebnis“ die letzten 19 Zeichen der ur­sprüng­li­chen Zei­chen­ket­te „s“. Somit steht in der Variable „ergebnis“ die Zei­chen­ket­te „Pro­gram­mier­spra­che.“.

String-Methoden

Es gibt neben dem Python Slicing eine Reihe vor­de­fi­nier­ter String-Methoden, die Sie nutzen können, um einen Python Substring aus einem String zu ex­tra­hie­ren.

Die Funktion slice

Wie der Name schon vermuten lässt, funk­tio­niert Funktion slice äqui­va­lent zum Python Slicing. Die Syntax der slice-Funktion erinnert ebenfalls stark an das bereits gesehene Slicing. Sie übernimmt einen Start- und einen Endindex und liefert den ent­spre­chen­den Substring zurück:

string.slice(start, ende)

Die Funktion substring

Auch die substring-Methode eignet sich bestens zum Ex­tra­hie­ren von Python Sub­strings. Syn­tak­tisch sieht sie ähnlich aus wie die slice-Funktion. Auch das Verhalten ist äqui­va­lent:

string.substring(start, ende)

Die Funktion split

Wenn Sie sich nicht nur für einen, sondern gleich für mehrere Python Sub­strings in­ter­es­sie­ren, lohnt sich ein Blick auf Python split. Die Funktion er­mög­licht es Ihnen, eine Zei­chen­ket­te anhand eines über­ge­be­nen Trenn­sym­bols in eine Python-Liste von Sub­strings zu un­ter­tei­len. Die Syntax ist nicht kom­pli­ziert:

string.split(trennzeichen)

Um sich das genaue Vorgehen der split-Funktion zu ver­deut­li­chen, hilft abermals ein kurzes Code­bei­spiel:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s.split(" ")

Der Aufruf der Python split-Funktion nimmt als Argument das Trenn­zei­chen, in unserem Fall ein Leer­zei­chen, entgegen. In der Variable „ergebnis“ ist nun eine Liste aller Python Sub­strings ge­spei­chert, die in der ur­sprüng­li­chen Zei­chen­ket­te durch ein Leer­zei­chen von­ein­an­der getrennt wurden: „['Python', 'ist', 'eine', 'be­lieb­te', 'Pro­gram­mier­spra­che.']“

Sub­strings als Resultat von regulären Aus­drü­cken

Sie können Python Sub­strings außerdem in einer Liste speichern, wenn Sie einen regulären Ausdruck auf eine Zei­chen­ket­te anwenden und an­schlie­ßend die findall-Funktion aus der Bi­blio­thek „re“ benutzen. Bei regulären Aus­drü­cken in Python handelt es sich um ein Format für die Be­ar­bei­tung von Zei­chen­ket­ten, das bestimmte Muster innerhalb von Strings findet. Die findall-Funktion nimmt als ersten Über­ga­be­pa­ra­me­ter einen regulären Ausdruck und als zweiten Parameter einen String entgegen. Ein Code­bei­spiel führt die Vor­ge­hens­wei­se vor Augen:

import re
s = "Python ist eine beliebte Programmiersprache."
ergebnis = re.findall(r"\w+", s)

In der ersten Codezeile wird die Bi­blio­thek „re“ im­por­tiert, damit im Anschluss Zugriff auf die Funktion findall besteht. Dieser wird im Anschluss der reguläre Ausdruck „r"\w+"“ sowie der bereits bekannte String in der Variable namens „s“ übergeben. Der reguläre Ausdruck sieht auf den ersten Blick viel­leicht etwas seltsam aus, besagt aber nichts anderes, als dass alle Wörter aus einem String ex­tra­hiert werden sollen. Somit über­rascht es nicht, dass sich in der Variable namens „ergebnis“ abermals eine Liste von Python Sub­strings befindet: „['Python', 'ist', 'eine', 'be­lieb­te', 'Pro­gram­mier­spra­che']“.

Zum Hauptmenü