Python Strings zu ver­glei­chen ist eine häufige all­täg­li­che Pro­gram­mier­auf­ga­be, zum Beispiel um Be­nut­zer­ein­ga­ben zu in­ter­pre­tie­ren, riesige Da­ten­sät­ze zu über­prü­fen oder mit text­ba­sier­ten Pro­to­kol­len zu arbeiten. Wir stellen Ihnen mehrere Mög­lich­kei­ten vor, Python Strings zu ver­glei­chen, und geben ver­ständ­li­cher Beispiele.

Python String-Vergleich: Ope­ra­to­ren und Funk­tio­nen

Python bietet seinen Nut­ze­rin­nen und Nutzern eine ganze Reihe von Compare-String-Ope­ra­to­ren und vor­ge­fer­tig­ten Funk­tio­nen, die den Vergleich von Strings er­leich­tern und be­schleu­ni­gen. Wir erklären zuerst die Ver­gleichs­ope­ra­to­ren und dann die Ver­gleichs­me­tho­den. An­schlie­ßend stellen wir zwei Code-Beispiele vor, um die Funk­ti­ons­wei­se der Ope­ra­to­ren und Methoden zu ver­an­schau­li­chen.

Ver­gleichs­ope­ra­to­ren

Die wohl ein­fachs­te Methode, zwei Python Strings mit­ein­an­der zu ver­glei­chen, ist, Python-Ope­ra­to­ren an­zu­wen­den. Wie bei Ganz- oder Gleit­kom­ma­zah­len können Ver­gleichs­ope­ra­to­ren ein­ge­setzt werden, um die Gleich­heit von Strings zu über­prü­fen. Al­ler­dings funk­tio­nie­ren die Ope­ra­to­ren in diesem Kontext nicht wie bei Zahlen, denn es gibt mehrere Ei­gen­schaf­ten von Strings, die man ver­glei­chen kann. In der folgenden Tabelle finden Sie eine Übersicht der Ver­gleichs­ope­ra­to­ren und ihrer je­wei­li­gen Funk­ti­ons­wei­sen.

Operator Bedeutung Beispiel Rück­ga­be­wert
== Strings sind gleich "Hallo" == "hallo" falsch
!= Strings sind ungleich "Hallo" != "hallo" wahr
< le­xi­ko­gra­phi­sche Ordnung kleiner "Australien" < "Simbabwe" wahr
> le­xi­ko­gra­phi­sche Ordnung größer "Australien" > "Simbabwe" falsch
<= le­xi­ko­gra­phi­sche Ordnung kleiner gleich "Deutschland" <= "Amerika" falsch
>= le­xi­ko­gra­phi­sche Ordnung größer gleich "Deutschland" <= "Deutschland" wahr

Hier ist „le­xi­ko­gra­phi­sche Ordnung“ der Fach­be­griff für „al­pha­be­ti­sche Ordnung“ und bedeutet dasselbe. Wörter mit einer niedrigen le­xi­ko­gra­phi­schen Ordnung kommen früher im Alphabet als Wörter mit einer hohen le­xi­ko­gra­phi­schen Ordnung. Also hat der String “abcd” eine nied­ri­ge­re le­xi­ko­gra­phi­sche Ordnung als der String “xyz”.

Leere Stellen in Strings haben die nied­rigs­te le­xi­ko­gra­phi­sche Ordnung von allen Zeichen. Wenn man also die ersten Zeichen eines Strings als Python-Substring nimmt, hat dieser Substring immer eine nied­ri­ge­re Ordnung als der ur­sprüng­li­che String. Zum Beispiel hat der String “Alex” eine nied­ri­ge­re le­xi­ko­gra­phi­sche Ordnung als der String “Alexander”.

Zu beachten ist außerdem, dass Pythons le­xi­ko­gra­phi­sche Ordnung nicht immer mit der ge­wöhn­li­chen al­pha­be­ti­schen Ordnung über­ein­stimmt. Zum Beispiel wertet Python den Ausdruck a < b als “wahr” aus, aber den Ausdruck a < B als “falsch”. Das liegt daran, dass sowohl im ASCII- als auch im Unicode-Standard die Groß­buch­sta­ben immer mit nied­ri­ge­ren Werten kodiert sind als die Klein­buch­sta­ben.

Hinweis

Neben dem Vergleich von Strings ist die For­ma­tie­rung von Texten ein wichtiger Be­stand­teil vieler Programme. In unserem Artikel zu den Python-String-Format-Methoden stellen wir die wich­tigs­ten For­ma­tie­rungs­me­tho­den und -ope­ra­to­ren vor.

Ver­gleichs­me­tho­den

Neben den Ver­gleichs­ope­ra­to­ren gibt es noch einige ein­ge­bau­te Methoden, mit denen Sie Strings nach anderen Kriterien ver­glei­chen können:

Methode Be­schrei­bung Beispiel Rück­ga­be­wert
.startswith() Gibt “wahr” zurück, wenn die ersten Buch­sta­ben eines Strings mit einem anderen String über­ein­stim­men "Benjamin".startswith("Ben") wahr
.endswith() Gibt “wahr” zurück, wenn die letzten Buch­sta­ben eines Strings mit einem anderen String über­ein­stim­men "Benjamin".endswith("jasmin") falsch
.find() Gibt Index des ersten Vor­kom­mens eines Sub­strings zurück; wenn der Substring nicht vorkommt, wird -1 zu­rück­ge­ge­ben. "Weihnachten".find("nacht") 4

Compare Strings in Python: Code-Beispiele

Um die Funk­ti­ons­wei­sen der oben vor­ge­stell­ten Ope­ra­to­ren und Methoden zu ver­deut­li­chen, stellen wir Ihnen zunächst zwei Beispiele vor, ein leichtes und eines, das etwas komplexer ist.

Prüfen, ob eine Liste al­pha­be­tisch sortiert ist

In diesem Beispiel bekommt das Programm eine Text­ein­ga­be und erstellt daraus eine Liste. An­schlie­ßend verwendet es Ver­gleichs­ope­ra­to­ren, um zu prüfen, ob die Liste al­pha­be­tisch sortiert ist.

eingabe_liste = []
while(True):
    temp = input('Bitte Wort eingeben. Wenn Sie keine Wörter mehr eingeben möchten, bitte \'.\' eingeben')
    if temp == '.':
        break
    eingabe_liste.append(temp)
print('Ihre Eingabe: ', eingabe_liste)
i = 0
alph = 1
while(i < len(eingabe_liste) - 1):
    if(eingabe_liste[i] > eingabe_liste[i + 1]):
        print('Diese Liste ist nicht alphabetisch sortiert!')
        alph = 0
        break
    i = i + 1
if(alph == 1):
    print('Diese Liste ist alphabetisch sortiert.')
Python

Per­so­nen­da­ten­bank mit Such­funk­ti­on

In diesem etwas kom­ple­xe­ren Beispiel wird der Nutzer bzw. die Nutzerin auf­ge­for­dert, Nach- und Vornamen von Personen ein­zu­ge­ben. Diese werden jeweils in eine Liste eingefügt, die wiederum in eine größere Liste in­te­griert wird. Daraus entsteht eine ver­schach­tel­te Liste, in der jede Un­ter­lis­te den Vornamen und den Nachnamen einer Person enthält. Diese große Liste wird an­schlie­ßend nach Nachnamen al­pha­be­tisch sortiert. Danach kann der Nutzer bzw. die Nutzerin erneut Text eingeben, um in der Datenbank nach Personen zu suchen. Dies wird mit der Ver­gleichs­me­tho­de .find() umgesetzt.

# Eingabe
personen = []
while(True):
    temp = input('Bitte Nachname der Person eingeben. Wenn Sie keine Personen mehr eingeben möchten, bitte \'.\' eingeben')
    if temp == '.':
        break
    person = []
    person.append(temp)
    temp = input('Bitte Vorname der Person eingeben.')
    person.append(temp)
    personen.append(person)
print('Ihre Eingabe: ', personen)
# Sortierten
personen.sort()
print('Sortiert: ', personen)
# Suchfunktion
while(True):
    search = input('Bitte String eingeben, um Datenbank durchzusuchen. Wenn Sie keine Personen mehr suchen möchten, bitte \'.\' eingeben')
    if search == '.':
        break
    for i in personen:
        if(i[0].find(search) != -1 or i[1].find(search) != -1):
            print('Match gefunden: ', i[0], ', ', i[1])
Python
Tipp

Sie wollen Ihre Web­an­wen­dung schnell und leicht online bringen? Kein Problem! Dann ist Deploy Now von IONOS die richtige Lösung für Sie.

Zum Hauptmenü