Vergleicht man alle Elemente der beiden Tupel (mit dem all () - Funktion)

Also ich weiß, dass Vergleiche auf Tupeln Arbeit lexikographisch:

Tupeln und Listen werden lexikographisch verglichen mit Vergleich der entsprechenden Elemente. Dies bedeutet, dass zum vergleichen gleich, jedes element muss vergleichen Sie gleich und die beiden Sequenzen müssen den gleichen Typ und die gleiche Länge haben.

Wenn nicht gleich, die Sequenzen sind bestellt die gleiche wie Ihre erste unterschiedliche Elemente. Zum Beispiel, cmp - ([1,2,x], [1,2,y]) liefert das gleiche wie cmp(x,y). Wenn das entsprechende element nicht vorhanden ist, wird die kürzere Sequenz ist bestellt erste (z.B. [1,2] < [1,2,3]).

So aus:

>>> a = (100, 0)
>>> b = (50, 50)
>>> a > b
True

Aber ich will vergleichen Sie alle Elemente 2-Tupel in der Reihenfolge, so funktional ich möchte so etwas wie (mit den Werten von oben):

>>> a > b
(True, False) #returned tuple containing each comparison
>>> all(a > b)
False

Als ein Beispiel aus der Praxis, für etwas wie Bildschirm-Koordinaten, wenn Sie wollte, um zu überprüfen, ob etwas 'in' der Bildschirm bei (0,0), aber ein Vergleich wie coord > (0,0), wenn die x-coord, war größer als 0, aber die y-coord kleiner war, würde es noch immer true zurück, das ist nicht das, was notwendig ist in diesem Fall.

Als eine Art sub-Frage/Diskussion:
Ich bin nicht sicher, warum vergleicht man 2-Tupel der verschiedenen Werte, die zurückgegeben wird, in einer Weise. Sie sind nicht gegeben, jede Art von index, so dass die einzige Sache, die Sie erhalten aus dem Vergleich ein Tupel (, dass ist nicht das testen der Gleichheit) ist, dass irgendwann in der die Tupel, einer der Vergleiche werden werfen Sie einen true-oder false-Wert, wenn Sie nicht gleich sind. Wie könnte man Sie nutzen?

Eine sinnvolle situation für Tupel-Vergleich ist die version-Nummern, die (3, 1, 4, 2) < (3, 2, 0, 1) und Dinge wie, dass

InformationsquelleAutor Joe Staines | 2012-04-28

Schreibe einen Kommentar