Comparando duas listas usando o operador maior que ou menor que
Eu notei um pedaço de código recentemente comparando diretamente duas listas de inteiros assim:
a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
...
que parecia um pouco estranho, mas eu imaginei que voltariaTrue
se todoslist_a
os elementos são maiores quelist_b
e falso se cada elemento é igual oulist_b
os elementos são maiores quelist_a
é. Então eu testei:
>>> a=[3,3,3,3]
>>> b=[4,4,4,4]
>>> a>b
False
>>> b>a
True
Ok, isso funciona. Como faz:
>>> b = [1,1,1,1]
>>> a = [1,1,1,1]
>>> a>b
False
>>> b>a
False
mas quando fica mais confuso:
>>> a=[1,1,3,1]
>>> b=[1,3,1,1]
>>> a>b
False
>>> b>a
True
ou:
>>> a=[1,3,1,1]
>>> b=[1,1,3,3]
>>> a>b
True
>>> b>a
False
os resultados são um pouco estranhos. O que o Python está realmente fazendo? Parece que está retornando o resultado em favor da primeira lista em que o elemento mais à esquerda é maior que o correspondente?