Назад к вопросам
Middle
1
Классический вопрос: что произойдёт, если положить в словарь ключи 1 (int), 1.0 (float) и True (bool)?
Компании, где спрашивали
it spirit
Ответ от нейросети
sobes.tech AI
В 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 считаются одним и тем же ключом в словаре.