So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie in Python prüfen können, ob eine Liste sortiert ist, unabhängig davon, ob sie in aufsteigender oder absteigender Reihenfolge vorliegt. Sie werden die Grundlagen sortierter Listen und ihre Verwendung in verschiedenen Programmieraufgaben erkunden.

Das Lab führt Sie durch die Erstellung und Manipulation von Listen mithilfe der integrierten Funktionen von Python. Sie lernen, wie Sie die sorted()-Funktion verwenden, um aus bestehenden Listen neue sortierte Listen zu erstellen, sowohl in aufsteigender als auch in absteigender Reihenfolge. Das Lab zeigt auch, wie man Listen von Strings sortiert.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/conditional_statements -.-> lab-559535{{"So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)"}} python/for_loops -.-> lab-559535{{"So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)"}} python/lists -.-> lab-559535{{"So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)"}} python/build_in_functions -.-> lab-559535{{"So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)"}} python/data_collections -.-> lab-559535{{"So überprüfen Sie, ob eine Liste in Python sortiert ist (beliebige Reihenfolge)"}} end

Erkunden von sortierten Listen

In diesem Schritt lernen Sie über sortierte Listen in Python. Sortierte Listen sind in der Programmierung für Aufgaben wie Suche, Datenanalyse und Algorithmusoptimierung von grundlegender Bedeutung. Python bietet integrierte Funktionen und Methoden, um sortierte Listen einfach zu erstellen und zu manipulieren.

Zunächst erstellen wir eine einfache Liste von Zahlen:

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]
print(numbers)

Speichern Sie den obigen Code in einer Datei namens sort_list.py im Verzeichnis ~/project. Sie können den VS Code-Editor verwenden, um diese Datei zu erstellen.

Führen Sie nun das Skript mit dem folgenden Befehl im Terminal aus:

python ~/project/sort_list.py

Sie sollten die ursprüngliche Liste ausgegeben sehen:

[5, 1, 4, 2, 8]

Um diese Liste zu sortieren, können Sie die sorted()-Funktion verwenden. Die sorted()-Funktion gibt eine neue sortierte Liste aus den Elementen eines iterierbaren Objekts zurück.

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list using the sorted() function
sorted_numbers = sorted(numbers)

## Print the sorted list
print(sorted_numbers)

Ändern Sie Ihre sort_list.py-Datei, um den obigen Code einzufügen. Führen Sie dann das Skript erneut aus:

python ~/project/sort_list.py

Jetzt sollten Sie die sortierte Liste ausgegeben sehen:

[1, 2, 4, 5, 8]

Beachten Sie, dass die ursprüngliche numbers-Liste unverändert bleibt. Die sorted()-Funktion erstellt eine neue sortierte Liste.

Wenn Sie die Liste in absteigender Reihenfolge sortieren möchten, können Sie den reverse-Parameter verwenden:

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list in descending order
sorted_numbers = sorted(numbers, reverse=True)

## Print the sorted list
print(sorted_numbers)

Ändern Sie Ihre sort_list.py-Datei, um den obigen Code einzufügen. Führen Sie dann das Skript erneut aus:

python ~/project/sort_list.py

Sie sollten die sortierte Liste in absteigender Reihenfolge sehen:

[8, 5, 4, 2, 1]

Sie können auch Listen von Strings sortieren:

## Create a list of strings
names = ["Alice", "Bob", "Charlie", "David"]

## Sort the list of strings
sorted_names = sorted(names)

## Print the sorted list
print(sorted_names)

Ändern Sie Ihre sort_list.py-Datei, um den obigen Code einzufügen. Führen Sie dann das Skript erneut aus:

python ~/project/sort_list.py

Sie sollten die sortierte Liste von Namen sehen:

['Alice', 'Bob', 'Charlie', 'David']

Die Strings werden alphabetisch sortiert.

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.

Verwenden von sorted() zum Vergleich

In diesem Schritt lernen Sie, wie Sie die sorted()-Funktion verwenden können, um zwei Listen zu vergleichen. Das Vergleichen von Listen ist eine häufige Aufgabe in der Programmierung, insbesondere wenn Sie überprüfen müssen, ob zwei Datensätze identisch sind oder ob eine Liste eine Teilmenge einer anderen ist.

Die sorted()-Funktion kann verwendet werden, um beide Listen zu sortieren, bevor Sie sie vergleichen. Dies stellt sicher, dass die Reihenfolge der Elemente das Vergleichsergebnis nicht beeinflusst.

Erstellen wir ein Python-Skript namens compare_lists.py in Ihrem ~/project-Verzeichnis mit dem VS Code-Editor.

Hier ist der Code, um zwei Listen mit der sorted()-Funktion zu vergleichen:

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

Speichern Sie den obigen Code in compare_lists.py. Führen Sie nun das Skript mit dem folgenden Befehl aus:

python ~/project/compare_lists.py

Sie sollten die folgende Ausgabe sehen:

True
False

Die Listen list_a und list_b enthalten die gleichen Elemente, daher gibt die Funktion True zurück. Die Listen list_c und list_d enthalten nicht die gleichen Elemente, daher gibt die Funktion False zurück.

Betrachten wir ein weiteres Beispiel mit Strings:

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

Fügen Sie den obigen Code zu Ihrer compare_lists.py-Datei hinzu. Die vollständige compare_lists.py-Datei sollte wie folgt aussehen:

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

Führen Sie das Skript erneut aus:

python ~/project/compare_lists.py

Sie sollten die folgende Ausgabe sehen:

True
False
True
False

Dieses Beispiel zeigt, wie Sie die sorted()-Funktion verwenden können, um Listen von Strings zu vergleichen.

Zusammenfassung

In diesem Lab haben Sie sortierte Listen in Python untersucht und gelernt, wie Sie die sorted()-Funktion verwenden können, um neue sortierte Listen aus bestehenden Listen zu erstellen. Sie haben gesehen, wie Sie eine Liste von Zahlen in aufsteigender und absteigender Reihenfolge sortieren können, indem Sie den reverse-Parameter verwenden.

Das Lab hat gezeigt, dass die ursprüngliche Liste unverändert bleibt, wenn Sie sorted() verwenden, da diese Funktion eine neue sortierte Liste zurückgibt. Sie haben auch gelernt, dass sorted() auf Listen von Strings angewendet werden kann, obwohl der bereitgestellte Inhalt vor der Demonstration dieses Aspekts abgeschnitten wurde.