4 clés ajoutées à un dictionnaire rend 2 clés en sortie

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 :

Les clés on des identités et types différents

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

Les clés ont le même hash

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

Clé de type float avec la valeur de la clé booléenne

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.

Commentaires

Avatar

ou participer

À lire ensuite

Des shots dans la même veine, à lire entre deux tâches.

Voir tous les shots
caret-right