Pergunta

Sou muito novo em Python, como você poderá ver.

Se eu tiver uma lista:

a = [1,2,3,2,1]

Isso avalia como verdadeiro:

a == a[::-1]

... mas isso é avaliado como falso:

a == a.reverse()

Por que isso acontece?

Foi útil?

Solução

porque .reverse() inverte a lista no local e não retorna nenhum:

>>> print a.reverse()
None

e a == None avalia para False.

Outras dicas

a.reverse() não tem valor de retorno, então a comparação é a== Nenhum que é falso

você pode verificar com:

>>> str(a.reversed())
'None'

ainda melhor:

>>> (id(a.reverse()), id(None))

você verá os mesmos endereços

Se você quiser uma nova cópia da lista, use reversed () em seu lugar.

a == list(reversed(a))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top