
Malgré l'ajout de 4 clés distinctes à un dictionnaire Python, peux-tu dire pourquoi il n'en conserve que deux ?
Voici pourquoi.
En Python, les dictionnaires trouvent une clé basée sur l'équivalence du hachage (calculée avec hash()), mais pas sur l'identité (calculée avec id()).
Dans ce cas, il ne fait aucun doute que 1.0, 1 et True ont intrinsèquement des types de données différents et sont également des objets différents. Ceci est illustré ci-dessous :

Pourtant, comme ils partagent la même valeur de hachage, le dictionnaire les considère comme les mêmes clés.

Mais as-tu remarqué que dans la démonstration, la clé finale est 1.0, alors que la valeur correspond à la clé True.

En effet, dans un premier temps, 1.0 est ajouté comme clé et sa valeur est 'One (float)'. Ensuite, en ajoutant la clé 1, python la reconnaît comme une équivalence de la valeur de hachage.
Ainsi, la valeur correspondant à 1.0 est remplacée par 'One (int)', tandis que la clé (1.0) est conservée telle quelle.
Enfin, lors de l'ajout de True, une autre équivalence de hachage est rencontrée avec une clé existante de 1.0. Une fois encore, la valeur correspondant à 1.0, qui a été mise à jour en 'One (int)' à l'étape précédente, est remplacée par 'One (bool)'.
Je suis sûr que tu as déjà deviné pourquoi la clé string '1' est conservée.
Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.

