У меня есть defaultdict(list)
, который я бы хотел сделать неизменным, чтобы я мог добавлять объекты этого типа в набор. У меня есть идея относительно того, как я могу сделать ее неизменной, но мне потребуется написать несколько строк кода. Нет ли более простого способа сделать это в python?Сделать объект неизменным
Разве это не распространено в python для заполнения, например defaultdict(list)
, при анализе фрагмента данных перед замораживанием его после завершения разбора?
Его также случай, когда объект может быть типом кортежа, но не может быть использован в качестве ключа Словаря, например:
>>> a = ([1,2],[2,3])
>>> type(a)
<type 'tuple'>
>>> d = dict()
>>> d[a] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
Почему существует кортеж списков в Python является также то, что я не понимаю.
См. Http://stackoverflow.com/questions/4828080/how-to-make-an-immutable-object-in-python –
также: http://stackoverflow.com/questions/3942825/freeze-in -python –