Pregunta sobre listas invertidas en Python
-
27-10-2019 - |
Pregunta
Soy muy nuevo en Python, como podrá ver.
Si tengo una lista:
a = [1,2,3,2,1]
Esto se evalúa como verdadero:
a == a[::-1]
... pero esto se evalúa como falso:
a == a.reverse()
¿Por qué es así?
Solución
porque .reverse()
invierte la lista en el lugar y no devuelve ninguna:
>>> print a.reverse()
None
y a == None
se evalúa como False
.
Otros consejos
a.reverse()
no tiene valor de retorno, por lo que la comparación es
a== Ninguno
que es falso
puede consultar con:
>>> str(a.reversed())
'None'
aún mejor:
>>> (id(a.reverse()), id(None))
verás las mismas direcciones
Si desea una nueva copia de la lista, utilice inverted () en su lugar.
a == list(reversed(a))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow