Question sur les listes renversées en Python
-
27-10-2019 - |
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?
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