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í?

¿Fue útil?

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
scroll top