Compare Strings in Python: So vergleichen Sie Strings
Python Strings zu vergleichen ist eine häufige alltägliche Programmieraufgabe, zum Beispiel um Benutzereingaben zu interpretieren, riesige Datensätze zu überprüfen oder mit textbasierten Protokollen zu arbeiten. Wir stellen Ihnen mehrere Möglichkeiten vor, Python Strings zu vergleichen, und geben verständlicher Beispiele.
Python String-Vergleich: Operatoren und Funktionen
Python bietet seinen Nutzerinnen und Nutzern eine ganze Reihe von Compare-String-Operatoren und vorgefertigten Funktionen, die den Vergleich von Strings erleichtern und beschleunigen. Wir erklären zuerst die Vergleichsoperatoren und dann die Vergleichsmethoden. Anschließend stellen wir zwei Code-Beispiele vor, um die Funktionsweise der Operatoren und Methoden zu veranschaulichen.
Vergleichsoperatoren
Die wohl einfachste Methode, zwei Python Strings miteinander zu vergleichen, ist, Python-Operatoren anzuwenden. Wie bei Ganz- oder Gleitkommazahlen können Vergleichsoperatoren eingesetzt werden, um die Gleichheit von Strings zu überprüfen. Allerdings funktionieren die Operatoren in diesem Kontext nicht wie bei Zahlen, denn es gibt mehrere Eigenschaften von Strings, die man vergleichen kann. In der folgenden Tabelle finden Sie eine Übersicht der Vergleichsoperatoren und ihrer jeweiligen Funktionsweisen.
Operator | Bedeutung | Beispiel | Rückgabewert |
---|---|---|---|
==
|
Strings sind gleich | "Hallo" == "hallo"
|
falsch |
!=
|
Strings sind ungleich | "Hallo" != "hallo"
|
wahr |
<
|
lexikographische Ordnung kleiner | "Australien" < "Simbabwe"
|
wahr |
>
|
lexikographische Ordnung größer | "Australien" > "Simbabwe"
|
falsch |
<=
|
lexikographische Ordnung kleiner gleich | "Deutschland" <= "Amerika"
|
falsch |
>=
|
lexikographische Ordnung größer gleich | "Deutschland" <= "Deutschland"
|
wahr |
Hier ist „lexikographische Ordnung“ der Fachbegriff für „alphabetische Ordnung“ und bedeutet dasselbe. Wörter mit einer niedrigen lexikographischen Ordnung kommen früher im Alphabet als Wörter mit einer hohen lexikographischen Ordnung. Also hat der String “abcd” eine niedrigere lexikographische Ordnung als der String “xyz”.
Leere Stellen in Strings haben die niedrigste lexikographische Ordnung von allen Zeichen. Wenn man also die ersten Zeichen eines Strings als Python-Substring nimmt, hat dieser Substring immer eine niedrigere Ordnung als der ursprüngliche String. Zum Beispiel hat der String “Alex” eine niedrigere lexikographische Ordnung als der String “Alexander”.
Zu beachten ist außerdem, dass Pythons lexikographische Ordnung nicht immer mit der gewöhnlichen alphabetischen Ordnung übereinstimmt. 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ßbuchstaben immer mit niedrigeren Werten kodiert sind als die Kleinbuchstaben.
Neben dem Vergleich von Strings ist die Formatierung von Texten ein wichtiger Bestandteil vieler Programme. In unserem Artikel zu den Python-String-Format-Methoden stellen wir die wichtigsten Formatierungsmethoden und -operatoren vor.
Vergleichsmethoden
Neben den Vergleichsoperatoren gibt es noch einige eingebaute Methoden, mit denen Sie Strings nach anderen Kriterien vergleichen können:
Methode | Beschreibung | Beispiel | Rückgabewert |
---|---|---|---|
.startswith()
|
Gibt “wahr” zurück, wenn die ersten Buchstaben eines Strings mit einem anderen String übereinstimmen | "Benjamin".startswith("Ben")
|
wahr |
.endswith()
|
Gibt “wahr” zurück, wenn die letzten Buchstaben eines Strings mit einem anderen String übereinstimmen | "Benjamin".endswith("jasmin")
|
falsch |
.find()
|
Gibt Index des ersten Vorkommens eines Substrings zurück; wenn der Substring nicht vorkommt, wird -1 zurückgegeben. | "Weihnachten".find("nacht")
|
4 |
Compare Strings in Python: Code-Beispiele
Um die Funktionsweisen der oben vorgestellten Operatoren und Methoden zu verdeutlichen, stellen wir Ihnen zunächst zwei Beispiele vor, ein leichtes und eines, das etwas komplexer ist.
Prüfen, ob eine Liste alphabetisch sortiert ist
In diesem Beispiel bekommt das Programm eine Texteingabe und erstellt daraus eine Liste. Anschließend verwendet es Vergleichsoperatoren, um zu prüfen, ob die Liste alphabetisch 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.')
PythonPersonendatenbank mit Suchfunktion
In diesem etwas komplexeren Beispiel wird der Nutzer bzw. die Nutzerin aufgefordert, Nach- und Vornamen von Personen einzugeben. Diese werden jeweils in eine Liste eingefügt, die wiederum in eine größere Liste integriert wird. Daraus entsteht eine verschachtelte Liste, in der jede Unterliste den Vornamen und den Nachnamen einer Person enthält. Diese große Liste wird anschließend nach Nachnamen alphabetisch sortiert. Danach kann der Nutzer bzw. die Nutzerin erneut Text eingeben, um in der Datenbank nach Personen zu suchen. Dies wird mit der Vergleichsmethode .find()
umgesetzt.
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])
PythonSie wollen Ihre Webanwendung schnell und leicht online bringen? Kein Problem! Dann ist Deploy Now von IONOS die richtige Lösung für Sie.