Sobes.tech
Middle

Classic question: what happens if you put keys 1 (int), 1.0 (float), and True (bool) into a dictionary?

sobes.tech AI

Answer from AI

In Python, dictionary keys must be hashable and compared by value. An interesting point: 1 (int), 1.0 (float), and True (bool) are considered equal when comparing keys because:

  • 1 == 1.0 returns True
  • 1 == True returns True

Additionally, they have the same hash (hash(1) == hash(1.0) == hash(True)).

Therefore, when adding these keys to a dictionary:

d = {}
d[1] = 'int'
d[1.0] = 'float'
d[True] = 'bool'
print(d)

the dictionary will only keep one key (effectively 1), and the value will be overwritten by the last added — 'bool'. As a result, the dictionary will look like:

{1: 'bool'}

That is, the keys 1, 1.0, and True are considered the same key in the dictionary.