Domanda

Sono molto nuovo su Python, come potrai capire.

Se ho un elenco:

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

Questo restituisce true:

a == a[::-1]

... ma restituisce false:

a == a.reverse()

Perché è così?

È stato utile?

Soluzione

perché .reverse() inverte l'elenco sul posto e non restituisce nessuno:

>>> print a.reverse()
None

e a == None restituisce False.

Altri suggerimenti

a.reverse() non ha valore di ritorno, quindi il confronto lo è a== Nessuno che è falso

puoi verificare con:

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

ancora meglio:

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

vedrai gli stessi indirizzi

Se vuoi una nuova copia dell'elenco, usa invece reversed ().

a == list(reversed(a))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top