Pergunta sobre listas invertidas em Python
-
27-10-2019 - |
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?
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