Это не что-то такое маленькое.Вы должны понять некоторые концепции, прежде чем продолжить свой процесс.
Словари позволяют вам получать доступ к их значениям с помощью ключей, таких как строки или целые числа, а не индексов (например, списков), верно?Что ж, за завесами должен быть механизм, позволяющий это осуществить, который называется хешем.
Каждый раз, когда вы помещаете пару ключ: значение в словарь, для этого ключа вычисляется значение хеша.В случае неизменяемых объектов (объектов, которые нельзя изменить после создания, которые можно создать только заново), значение хеш-функции всегда одинаково для одной и той же строки или целого числа или других неизменяемых объектов, так словарь получает доступ к своим значениям с помощью ключа.
С другой стороны, изменяемые объекты не могут быть хэшированы.Поэтому не подходит для использования в качестве ключа внутри словаря.И list
является одним из них.
Если необходимо, вы можете преобразовать список в кортеж, чтобы использовать его в словаре в качестве ключа.
lst = [1, 2, 3]
tup = tuple(lst)
Имейте в виду, чтоВы не можете изменить элементы кортежа после создания, такие как;
tup[0] = 1
Именно поэтому он является неизменным.Вы можете заменить его только на другой кортеж, если вам требуется изменить его значения.
Примечание: Кортеж также не может содержать списки в качестве элементов, если его необходимо использовать дляхеширование (что сделает его изменчивым).