Списки изменчивы и поэтому не могут использоваться в качестве ключей dict
.В противном случае программа могла бы добавить список в словарь, изменить его значение, и теперь неясно, должно ли значение в словаре быть доступно в новом или старом значении списка, или ни того, ни другого.
Если выЕсли вы хотите использовать структурированные данные в качестве ключей, вам необходимо сначала преобразовать их в неизменяемые типы, такие как tuple
или frozenset
.Для не вложенных объектов вы можете просто использовать tuple(obj)
.Для простого списка лиц вы можете использовать это:
tuple(tuple(elem) for elem in obj)
Но для произвольной структуры вам придется использовать рекурсию.