Porównywanie dwóch list za pomocą operatora większa niż lub mniejsza niż operator
Niedawno zauważyłem fragment kodu bezpośrednio porównujący dwie listy liczb całkowitych w ten sposób:
a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
...
co wydawało się nieco dziwne, ale wyobrażałem sobie, że wróciTrue
jeśli wszystkolist_a
elementy są większelist_b
's i Fałsz, jeśli każdy element jest równy lublist_b
elementy są większelist_a
jest. Przetestowałem to:
>>> a=[3,3,3,3]
>>> b=[4,4,4,4]
>>> a>b
False
>>> b>a
True
Ok, to działa. Podobnie jak:
>>> b = [1,1,1,1]
>>> a = [1,1,1,1]
>>> a>b
False
>>> b>a
False
ale kiedy staje się bardziej rozmyta:
>>> a=[1,1,3,1]
>>> b=[1,3,1,1]
>>> a>b
False
>>> b>a
True
lub:
>>> a=[1,3,1,1]
>>> b=[1,1,3,3]
>>> a>b
True
>>> b>a
False
wyniki są nieco dziwniejsze. Co właściwie robi Python? Wydaje się, że zwraca wynik na korzyść pierwszej listy, w której lewy najbardziej element jest większy niż odpowiadający?