Рассмотрим:
>>> a = {'foo': {'bar': 3}}
>>> b = {'foo': {'bar': 3}}
>>> a == b
True
В соответствии с документом python вы действительно можете использовать оператор ==
в словарях.
Что на самом деле происходит здесь? Является ли Python рекурсивной проверкой каждого элемента словарей для обеспечения равенства? Убедитесь, что ключи идентично совпадают, и значения также идентично совпадают?
Есть ли документация, которая точно определяет, что означает ==
в словаре? Или я должен реализовать свою собственную версию проверки равенства?
(Если работает оператор ==
, почему нет dicts hashable? То есть, почему я не могу создать набор() dicts или использовать dict в качестве словарного ключа?)