Middle
51
Question classique : que se passera-t-il si on met dans un dictionnaire les clés 1 (int), 1.0 (float) et True (bool) ?
Entreprises à qui on a demandé
it spirit
Réponse de l'IA
sobes.tech IA
В Python ключи словаря должны быть хешируемыми и сравниваться по значению. Интересный момент: 1 (int), 1.0 (float) и True (bool) считаются равными при сравнении ключей, потому что:
1 == 1.0возвращаетTrue1 == TrueвозвращаетTrue
Кроме того, у них одинаковый хеш (hash(1) == hash(1.0) == hash(True)).
Поэтому при добавлении этих ключей в словарь:
d = {}
d[1] = 'int'
d[1.0] = 'float'
d[True] = 'bool'
print(d)
в словаре останется только один ключ (фактически 1), и значение будет перезаписываться последним добавленным — 'bool'. В итоге словарь будет выглядеть так:
{1: 'bool'}
То есть ключи 1, 1.0 и True считаются одним и тем же ключом в словаре.