Wie man prüft, ob eine Liste in Python in aufsteigender Reihenfolge sortiert ist

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 in aufsteigender Reihenfolge sortiert ist. Das Lab konzentriert sich darauf, sortierte Listen zu verstehen und wie man sie mit der Funktion sorted() manipuliert. Sie werden lernen, wie Sie aus einer bestehenden Liste eine sortierte Liste erstellen, wie Sie mit dem Parameter reverse sowohl in aufsteigender als auch in absteigender Reihenfolge sortieren und dass die ursprüngliche Liste unverändert bleibt.

Das Lab führt Sie durch das Erstellen eines Python-Skripts namens sort_list.py in Ihrem Verzeichnis ~/project, das Hinzufügen von Code-Snippets und das Ausführen des Skripts, um die Ausgabe zu beobachten. Sie werden sehen, wie die Funktion sorted() eine neue sortierte Liste zurückgibt, ohne die ursprüngliche Liste zu ändern, und wie Sie den Parameter reverse verwenden, um in absteigender Reihenfolge zu sortieren. Anschließend wird das Lab weitere Methoden zur Prüfung, ob eine Liste sortiert ist, behandeln.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") 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/booleans -.-> lab-559536{{"Wie man prüft, ob eine Liste in Python in aufsteigender Reihenfolge sortiert ist"}} python/lists -.-> lab-559536{{"Wie man prüft, ob eine Liste in Python in aufsteigender Reihenfolge sortiert ist"}} python/build_in_functions -.-> lab-559536{{"Wie man prüft, ob eine Liste in Python in aufsteigender Reihenfolge sortiert ist"}} python/data_collections -.-> lab-559536{{"Wie man prüft, ob eine Liste in Python in aufsteigender Reihenfolge sortiert ist"}} end

Verständnis von sortierten Listen

In diesem Schritt lernen Sie über sortierte Listen in Python. Eine sortierte Liste ist einfach eine Liste, bei der die Elemente in einer bestimmten Reihenfolge angeordnet sind, entweder aufsteigend oder absteigend. Das Verständnis, wie man sortierte Listen erstellt und manipuliert, ist eine grundlegende Fähigkeit in der Python-Programmierung.

Beginnen wir damit, eine einfache Liste von Zahlen zu erstellen:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
print(numbers)

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

Jetzt führen Sie das Skript mit dem folgenden Befehl in Ihrem Terminal aus:

python sort_list.py

Sie sollten die ursprüngliche Liste in der Konsole sehen:

[3, 1, 4, 1, 5, 9, 2, 6]

Um eine sortierte Version dieser Liste zu erstellen, können Sie die Funktion sorted() verwenden. Die Funktion sorted() nimmt ein iterierbares Objekt (wie eine Liste) als Eingabe und gibt eine neue Liste mit allen Elementen in aufsteigender Reihenfolge zurück:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

Ändern Sie Ihre sort_list.py-Datei, um die Funktion sorted() einzubeziehen. Führen Sie das Skript erneut aus:

python sort_list.py

Jetzt sollten Sie die sortierte Liste in der Konsole sehen:

[1, 1, 2, 3, 4, 5, 6, 9]

Die ursprüngliche Liste numbers bleibt unverändert. Die Funktion sorted() erstellt eine neue sortierte Liste, ohne die ursprüngliche Liste zu ändern.

Sie können die Liste auch in absteigender Reihenfolge sortieren, indem Sie den Parameter reverse verwenden:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)

Fügen Sie dies zu Ihrer sort_list.py-Datei hinzu und führen Sie sie aus:

python sort_list.py

Sie werden die Liste in absteigender Reihenfolge sehen:

[9, 6, 5, 4, 3, 2, 1, 1]

Das Verständnis der Funktion sorted() und wie man den Parameter reverse verwendet, ist entscheidend für die Arbeit mit sortierten Listen in Python.

Vergleich mit sorted()

In diesem Schritt werden Sie tiefer in die Funktion sorted() eintauchen und sie mit einer anderen Methode zum Sortieren von Listen vergleichen: der Methode list.sort(). Das Verständnis der Unterschiede zwischen diesen beiden Ansätzen ist für eine effiziente und effektive Manipulation von Listen in Python unerlässlich.

Beginnen wir damit, die Funktion sorted() noch einmal zu betrachten. Wie Sie im vorherigen Schritt gelernt haben, gibt sorted() eine neue sortierte Liste zurück, ohne die ursprüngliche Liste zu ändern.

Jetzt lassen Sie uns die Methode list.sort() untersuchen. Diese Methode sortiert die Liste direkt, d. h. sie ändert die ursprüngliche Liste direkt.

Betrachten Sie das folgende Beispiel:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
numbers.sort()
print(numbers)

Fügen Sie diesen Code in Ihre sort_list.py-Datei ein und ersetzen Sie den vorherigen Inhalt. Führen Sie dann das Skript aus:

python sort_list.py

Sie sollten sehen, dass die ursprüngliche Liste numbers geändert und in aufsteigender Reihenfolge sortiert wurde:

[1, 1, 2, 3, 4, 5, 6, 9]

Beachten Sie, dass numbers.sort() keine neue Liste zurückgibt; es ändert die bestehende Liste.

Hier ist ein Vergleich der beiden Methoden:

  • sorted(list):

    • Gibt eine neue sortierte Liste zurück.
    • Die ursprüngliche Liste bleibt unverändert.
    • Kann mit jedem iterierbaren Objekt verwendet werden (z. B. Tupeln, Strings).
  • list.sort():

    • Sortiert die Liste direkt (ändert die ursprüngliche Liste).
    • Gibt None zurück.
    • Kann nur mit Listen verwendet werden.

Um den Unterschied noch deutlicher zu machen, versuchen wir, das Ergebnis von list.sort() einer Variablen zuzuweisen:

numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = numbers.sort()
print(sorted_numbers)
print(numbers)

Führen Sie diesen Code aus:

python sort_list.py

Sie werden die folgende Ausgabe sehen:

None
[1, 1, 2, 3, 4, 5, 6, 9]

Wie Sie sehen können, ist sorted_numbers None, weil numbers.sort() die Liste direkt ändert und None zurückgibt. Die Liste numbers ist jetzt sortiert.

Die Wahl zwischen sorted() und list.sort() hängt von Ihren spezifischen Anforderungen ab. Wenn Sie die ursprüngliche Liste unverändert lassen möchten, verwenden Sie sorted(). Wenn Sie die Liste direkt ändern möchten und die ursprüngliche Liste nicht behalten müssen, ist list.sort() effizienter.

Prüfung mit all() und zip()

In diesem Schritt lernen Sie, wie Sie die Funktionen all() und zip() verwenden können, um zu prüfen, ob eine Liste sortiert ist. Diese Funktionen bieten eine kompakte und effiziente Möglichkeit, die Reihenfolge der Elemente in einer Liste zu überprüfen.

Zunächst verstehen wir die Funktion zip(). Die Funktion zip() nimmt mehrere iterierbare Objekte (z. B. Listen) als Eingabe und gibt einen Iterator von Tupeln zurück, wobei jedes Tupel die entsprechenden Elemente aus den Eingabe-iterierbaren Objekten enthält.

Betrachten Sie das folgende Beispiel:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
zipped = zip(list1, list2)
print(list(zipped))

Fügen Sie diesen Code in Ihre sort_list.py-Datei ein und ersetzen Sie den vorherigen Inhalt. Führen Sie dann das Skript aus:

python sort_list.py

Sie sollten die folgende Ausgabe sehen:

[(1, 4), (2, 5), (3, 6)]

Die Funktion zip() hat einen Iterator erstellt, der Tupel mit den entsprechenden Elementen aus list1 und list2 liefert.

Jetzt verstehen wir die Funktion all(). Die Funktion all() nimmt ein iterierbares Objekt als Eingabe und gibt True zurück, wenn alle Elemente im iterierbaren Objekt wahr sind, und False sonst.

Betrachten Sie das folgende Beispiel:

bool_list = [True, True, True]
print(all(bool_list))

bool_list = [True, False, True]
print(all(bool_list))

Fügen Sie diesen Code in Ihre sort_list.py-Datei ein und führen Sie ihn aus:

python sort_list.py

Sie werden die folgende Ausgabe sehen:

True
False

Jetzt kombinieren wir zip() und all(), um zu prüfen, ob eine Liste sortiert ist. Die Idee besteht darin, jedes Element mit dem nächsten Element in der Liste zu vergleichen und zu prüfen, ob die Liste in aufsteigender Reihenfolge ist.

numbers = [1, 2, 3, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)

numbers = [1, 2, 5, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)

Ändern Sie Ihre sort_list.py-Datei, um diesen Code einzubeziehen. Führen Sie das Skript erneut aus:

python sort_list.py

Sie sollten die folgende Ausgabe sehen:

True
False

Dieser Code verwendet einen Generator-Ausdruck mit zip(), um benachbarte Elemente in der Liste zu vergleichen. Die Funktion all() prüft dann, ob alle Vergleiche wahr sind, was darauf hinweist, dass die Liste sortiert ist.

Dieser Ansatz bietet eine kompakte und effiziente Möglichkeit, zu prüfen, ob eine Liste in Python sortiert ist.

Zusammenfassung

In diesem Lab beginnen Sie damit, sortierte Listen in Python zu verstehen. Sortierte Listen sind Listen, bei denen die Elemente in einer bestimmten Reihenfolge angeordnet sind. Sie lernen, eine Liste zu erstellen und dann die Funktion sorted() zu verwenden, um eine neue Liste mit Elementen in aufsteigender Reihenfolge zu generieren. Dabei bemerken Sie, dass die ursprüngliche Liste unverändert bleibt.

Darüber hinaus erkunden Sie das Sortieren in absteigender Reihenfolge, indem Sie den Parameter reverse=True innerhalb der Funktion sorted() nutzen. Dies ermöglicht es Ihnen, eine neue Liste zu erstellen, bei der die Elemente von größtem zu kleinsten angeordnet sind. Dadurch vertiefen Sie Ihr Verständnis davon, wie man in Python sortierte Listen manipuliert und erstellt.