Mis a jour le 2025-04-14, 12:10

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