Question

Je suis très nouveau à python, comme vous pourrez le dire.

Si j'ai une liste:

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

est évaluée à vrai:

a == a[::-1]

... mais ce Equivaut à false:

a == a.reverse()

Pourquoi est-ce le cas?

Était-ce utile?

La solution

parce que .reverse() inverse la liste en place et retourne pas:

>>> print a.reverse()
None

et a == None Equivaut à False.

Autres conseils

a.reverse() n'a pas de valeur de retour, de sorte que la comparaison a == Aucun ce qui est faux

vous pouvez vérifier avec:

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

encore mieux:

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

vous verrez les mêmes adresses

Si vous voulez une nouvelle copie de la liste, l'utilisation inversée () à la place.

a == list(reversed(a))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top