Prüfen auf aufsteigende oder absteigende Reihenfolge
In diesem Schritt lernen Sie, wie Sie prüfen können, ob eine Liste in aufsteigender oder absteigender Reihenfolge sortiert ist. Dies ist eine häufige Aufgabe in vielen Programmier-Szenarien, wie z. B. bei der Datenvalidierung und Algorithmusentwicklung.
Um zu bestimmen, ob eine Liste sortiert ist, können Sie durch die Liste iterieren und benachbarte Elemente vergleichen. Wenn jedes Element kleiner oder gleich dem nächsten Element ist, ist die Liste in aufsteigender Reihenfolge sortiert. Wenn jedes Element größer oder gleich dem nächsten Element ist, ist die Liste in absteigender Reihenfolge sortiert.
Beginnen wir damit, ein Python-Skript namens check_order.py
in Ihrem ~/project
-Verzeichnis mit dem VS Code-Editor zu erstellen.
Hier ist der Code, um zu prüfen, ob eine Liste in aufsteigender Reihenfolge sortiert ist:
def is_ascending(lst):
for i in range(len(lst) - 1):
if lst[i] > lst[i + 1]:
return False
return True
numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))
numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))
Speichern Sie den obigen Code in check_order.py
. Führen Sie nun das Skript mit dem folgenden Befehl aus:
python ~/project/check_order.py
Sie sollten die folgende Ausgabe sehen:
True
False
Die erste Liste [1, 2, 3, 4, 5]
ist in aufsteigender Reihenfolge sortiert, daher gibt die Funktion True
zurück. Die zweite Liste [1, 3, 2, 4, 5]
ist nicht in aufsteigender Reihenfolge sortiert, daher gibt die Funktion False
zurück.
Fügen wir nun Code hinzu, um zu prüfen, ob eine Liste in absteigender Reihenfolge sortiert ist:
def is_descending(lst):
for i in range(len(lst) - 1):
if lst[i] < lst[i + 1]:
return False
return True
numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))
numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))
Fügen Sie den obigen Code zu Ihrer check_order.py
-Datei hinzu. Die vollständige check_order.py
-Datei sollte wie folgt aussehen:
def is_ascending(lst):
for i in range(len(lst) - 1):
if lst[i] > lst[i + 1]:
return False
return True
def is_descending(lst):
for i in range(len(lst) - 1):
if lst[i] < lst[i + 1]:
return False
return True
numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))
numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))
numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))
numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))
Führen Sie das Skript erneut aus:
python ~/project/check_order.py
Sie sollten die folgende Ausgabe sehen:
True
False
True
False
Die Liste [5, 4, 3, 2, 1]
ist in absteigender Reihenfolge sortiert, daher gibt die Funktion True
zurück. Die Liste [5, 2, 3, 2, 1]
ist nicht in absteigender Reihenfolge sortiert, daher gibt die Funktion False
zurück.
Diese Übung zeigt, wie Sie mit Python prüfen können, ob eine Liste in aufsteigender oder absteigender Reihenfolge sortiert ist.