Prüfung mit all() und zip()
In diesem Schritt lernen Sie, wie Sie die Funktionen all()
und zip()
in Verbindung mit sortierten Tupeln (Tuples) verwenden können, um fortgeschrittene Prüfungen und Vergleiche durchzuführen.
Die all()
-Funktion ist eine eingebaute Python-Funktion, die True
zurückgibt, wenn alle Elemente eines iterierbaren Objekts wahr sind (oder wenn das iterierbare Objekt leer ist). Sie wird oft verwendet, um zu prüfen, ob eine Bedingung für alle Elemente einer Sequenz erfüllt ist.
Die zip()
-Funktion ist eine weitere eingebaute Python-Funktion, die mehrere iterierbare Objekte als Argumente nimmt und einen Iterator von Tupeln zurückgibt. Jedes Tupel enthält die entsprechenden Elemente aus den Eingabe-iterierbaren Objekten. Sie ist nützlich, um Elemente aus verschiedenen Sequenzen für Vergleiche oder andere Operationen zu paarweise zu verknüpfen.
Schauen wir uns an, wie diese Funktionen mit sortierten Tupeln verwendet werden können:
- Öffnen Sie den VS Code-Editor in der LabEx-Umgebung.
- Bearbeiten Sie die vorhandene Datei
sort_tuple.py
im Verzeichnis ~/project
oder erstellen Sie sie, wenn sie noch nicht existiert.
- Kopieren Sie den folgenden Code und fügen Sie ihn in
sort_tuple.py
ein:
## Checking if a tuple is sorted using all() and zip()
def is_sorted(data):
## zip(data, data[1:]) pairs consecutive elements
## all(x <= y for x, y in ...) checks if each pair is in ascending order
return all(x <= y for x, y in zip(data, data[1:]))
my_tuple1 = (1, 2, 3, 4, 5)
my_tuple2 = (5, 2, 8, 1, 9)
print("Tuple 1:", my_tuple1, "is sorted:", is_sorted(my_tuple1))
print("Tuple 2:", my_tuple2, "is sorted:", is_sorted(my_tuple2))
Dieser Code definiert eine Funktion is_sorted()
, die prüft, ob ein gegebenes Tupel in aufsteigender Reihenfolge sortiert ist. Sie verwendet zip()
, um aufeinanderfolgende Elemente des Tupels zu paarweise zu verknüpfen, und all()
, um zu prüfen, ob jedes Paar in aufsteigender Reihenfolge ist.
Um das Skript auszuführen, öffnen Sie ein Terminal in VS Code (Sie finden es im unteren Bereich) und führen Sie den folgenden Befehl aus:
python sort_tuple.py
Sie sollten die folgende Ausgabe sehen:
Tuple 1: (1, 2, 3, 4, 5) is sorted: True
Tuple 2: (5, 2, 8, 1, 9) is sorted: False
Wie Sie sehen können, erkennt die is_sorted()
-Funktion korrekt, ob die Tupel sortiert sind oder nicht.
Lassen Sie uns dieses Beispiel erweitern, um zu prüfen, ob zwei Tupel nach dem Sortieren identisch sind:
## Checking if two tuples are identical after sorting
def are_identical_after_sorting(tuple1, tuple2):
return sorted(tuple1) == sorted(tuple2)
tuple_a = (3, 1, 4, 1, 5)
tuple_b = (1, 5, 1, 4, 3)
tuple_c = (1, 2, 3, 4, 5)
print("Tuple A:", tuple_a, "and Tuple B:", tuple_b, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_b))
print("Tuple A:", tuple_a, "and Tuple C:", tuple_c, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_c))
Fügen Sie diesen Code zu Ihrer sort_tuple.py
-Datei hinzu und führen Sie sie erneut aus:
python sort_tuple.py
Die Ausgabe sollte jetzt Folgendes enthalten:
Tuple A: (3, 1, 4, 1, 5) and Tuple B: (1, 5, 1, 4, 3) are identical after sorting: True
Tuple A: (3, 1, 4, 1, 5) and Tuple C: (1, 2, 3, 4, 5) are identical after sorting: False
In diesem Beispiel prüft die are_identical_after_sorting()
-Funktion, ob zwei Tupel die gleichen Elemente enthalten, unabhängig von ihrer ursprünglichen Reihenfolge. Sie sortiert beide Tupel und vergleicht dann die sortierten Listen.