Когда мы создаём словарь
var с ключом float('nan'), у нас есть один элемент в словареОднако, когда мы пытаемся обновить значение этого ключа с помощью
var[float('nan')] = 2, Python не считает float('nan') и float('nan') одинаковыми ключами из-за того, что NaN не равно самому себе по определению в стандарте IEEE 754 для плавающей точкиТаким образом, вместо обновления существующего значения, Python добавляет новую пару ключ-значение в словарь, и теперь у нас есть два элемента в
var. Это и приводит к тому, что len(var) возвращает 2