Vergleichen von Listen mit dem Größer-als- oder Kleiner-als-Operator: Unüberraschende lexikografische Sortierung
Beim Auffinden von Code, bei dem Listen direkt mit dem Größer-als-oder-kleiner-Operator verglichen werden Als Operator (> und <) können Sie davon ausgehen, dass solche Vergleiche „True“ zurückgeben, wenn alle Elemente in der ersten Liste größer sind als die in der zweiten Liste, andernfalls „False“. Tests zeigen jedoch unerwartete Ergebnisse.
Um dieses Rätsel zu lösen, wenden wir uns der Python-Dokumentation zum Vergleich von Sequenzen und anderen Typen zu. Darin heißt es, dass solche Vergleiche der lexikografischen Reihenfolge und nicht Element-für-Element-Vergleichen folgen:
Betrachten Sie das folgende Beispiel:
a = [3, 3, 3, 3] b = [4, 4, 4, 4]
Da sich die ersten Elemente (3 und 4) unterscheiden, gilt b als größer als a. Dies stimmt mit unserer Annahme überein, dass alle Elemente in b größer sind als die in a.
Der folgende Fall veranschaulicht jedoch die lexikografische Ordnungsregel deutlicher:
a = [1, 1, 3, 1] b = [1, 3, 1, 1]
Da die ersten Elemente ( 1) gleich sind, geht der Vergleich mit den nächsten Elementen weiter. In diesem Fall ist das zweite Element von a (1) kleiner als das zweite Element von b (3). Deshalb wird b trotz der Tatsache, dass a mehr Elemente größer als 1 als b hat, als größer als a betrachtet.
Zusammenfassend lässt sich sagen, dass Python beim Vergleichen von Listen mit dem Größer-als- oder Kleiner-als-Operator eine lexikografische Reihenfolge verwendet. statt Element-für-Element-Vergleiche. Dies kann zu unerwarteten Ergebnissen führen, insbesondere wenn Listen Elemente mit unterschiedlichen Werten enthalten.
Das obige ist der detaillierte Inhalt vonWie vergleicht Python Listen mit Größer-als- und Kleiner-als-Operatoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!