Целесообразно поддерживать хеширование для изменяемых контейнеров, но общее правило заключается в том, что вы хэшируете текущее значение, а не контейнер.
РЕДАКТИРОВАТЬ Это в принципе разумно, хотя Python обычно защищает от этого.
Для такого рода задач есть даже особая техника хеширования. Хэширование Zobrist вычисляет хэш постепенно, основываясь на каждом изменении контейнера, таким образом, что независимо от того, как вы достигаете определенного значения, вы получаете один и тот же хэш. Это используется в шахматных программах для обнаружения случаев, когда доска достигает одного и того же состояния через различные последовательности ходов, в качестве оптимизации для поиска по игровому дереву.
Вопрос здесь почему вы хотите найти список, используя поиск на основе хеша?
Если значение меняется, но вы все равно хотите найти один и тот же контейнер, то это может сработать (с проблемами коллизий) - но все равно это кажется бессмысленным. Случайное значение хеша - это просто некий идентификатор, идентифицирующий объект, на который вы ссылаетесь. Ссылка / указатель на объект является лучшим идентификатором. И как вы узнаете, какое хеш-значение нужно искать, если у вас все равно нет ссылки на объект?
Если вам нужна коллекция контейнеров, список списков - лучшее решение, чем словарь случайных хэшированных списков.
РЕДАКТИРОВАТЬ Возможное исключение, если вам нужна коллекция списков, где один и тот же список может быть добавлен более одного раза, но будет присутствовать в контейнере только один раз - набор экземпляров списка. В этом случае хэш должен основываться на IMO на основе ссылки на объект, но я не могу вспомнить, как это делается.