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_aos elementos são maiores quelist_be falso se cada elemento é igual oulist_bos 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?

questionAnswers(2)

yourAnswerToTheQuestion