2016-04-06 5 views
0

Я пытаюсь преобразовать следующий 2D список:Python: Преобразование 2D список в словарь

lst = [['A','B'],['C','D']] 

Для словаря, как:

dict = {['A','B']:0, ['C','D']:1} 

Я пробовал ответы от других сообщений, таких как следующие:

{k: v for v, k in enumerate(lst)} 

Что дает мне эту ошибку:

unhashable type: 'list' 

Любая помощь очень ценится. Благодарю.

+2

Списки и другие изменяемые типы не могут быть ключами словаря. Что вы хотите сделать с этим? – tzaman

+0

@tzaman сравнить его с другим словарем, похожим на это, чтобы найти индексы элементов в двух. – ahajib

+0

, но вы можете использовать кортеж: '{tuple (k): v для v, k в enumerate (lst)}' – Thomas

ответ

1

Списков изменчивы, и, следовательно, не может быть использован в качестве ключей словаря. Вы можете преобразовать их в кортежи, если хотите:

{tuple(k): v for v, k in enumerate(lst)} 
1

Mutable типов не могут быть ключами словаря, но вы можете хранить кортежи в качестве ключей словаря для вашей цели, как это:

{tuple(k): v for v, k in enumerate(lst)} 
Смежные вопросы