> Les bases > Le langage > Comparaisons
Comparaisons
Opérateur is : il compare les adresses mémoire :
- x = 'abc'; y ='abc'; x == y : renvoie True, car ce sont les 2 mêmes adresses mémoire si on compare id(x) et id(y).
- par contre, x = ['a', 'b']; y = ['a', 'b']; x is y : renvoie False, ce sont 2 adresses mémoire différentes.
Quand on compare 2 structures avec == (ou !=), il y a une comparaison récursive des valeurs, alors que l'opérateur "is" compare seulement les adresses mémoire :
- x = {'a': 1, 'b': 5}; y = {'a': 1, 'b': 5}; x == y renvoie True.
- pour les dictionnaires, la comparaison se fait par clef, indépendamment de l'ordre des clefs : {'a': 1, 'b': 5} == {'b': 5,'a': 1} est True
- la comparaison est récursive : {'a': 1, 'b': [5, 7]} == {'b': [5, 7],'a': 1} est True
- list et tuples sont différents : {'a': 1, 'b': [5, 7]} == {'b': (5, 7),'a': 1} est False.
Copyright python-simple.com

programmer en python, tutoriel python, graphes en python, Aymeric Duclert