Vergleichen von zwei Listen mit dem Operator "größer als" oder "kleiner als"
Ich habe kürzlich einen Code entdeckt, der zwei Listen mit ganzen Zahlen direkt miteinander vergleicht:
a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
...
Das schien ein bisschen eigenartig, aber ich stellte mir vor, dass es zurückkehren würdeTrue
wenn alle vonlist_a
Die Elemente sind dann größerlist_b
's und False, wenn jedes Element gleich oderlist_b
Die Elemente sind dann größerlist_a
's. Also habe ich es getestet:
>>> a=[3,3,3,3]
>>> b=[4,4,4,4]
>>> a>b
False
>>> b>a
True
Ok das klappt Ebenso wie:
>>> b = [1,1,1,1]
>>> a = [1,1,1,1]
>>> a>b
False
>>> b>a
False
aber wenn es unschärfer wird:
>>> a=[1,1,3,1]
>>> b=[1,3,1,1]
>>> a>b
False
>>> b>a
True
oder:
>>> a=[1,3,1,1]
>>> b=[1,1,3,3]
>>> a>b
True
>>> b>a
False
Die Ergebnisse sind etwas seltsam. Was macht Python eigentlich? Es scheint, dass es das Ergebnis zugunsten der ersten Liste zurückgibt, in der das am weitesten links stehende Element größer ist als das entsprechende?