Создать словарь из многомерного (вложенного) списка

Имеется многомерный список

a_list = [[1,0,3,4],[5,1,7,8],[9,2,2,4],[8,3,6,5],[2,4,5,6]]

Список необходимо преобразовать в словарь который для ключа выбирает второй элемент вложенного списка,а значением остальные элементы списка. Например для первого списка [1,0,3,4] ключем в словаре будет key = 0 , значение value = [1,3,4] Итоговый словарь будет иметь вид

a_dict = {0:[1,3,4],
          1:[5,7,8],
          2:[9,2,4],
          3:[8,6,5],
          4:[2,5,6],}

Ответы (3 шт):

Автор решения: MaxU

Алгоритм решения:

  • воспользуйтесь "dictionary comprehension" - res = {key: value for ...}
  • в качестве ключа можно использовать метод list.pop(), который удаляет элемент списка и возвращает его

Если правильно реализовать данный алгоритм - у вас получится короткое и эффективное однострочное решение.

PS если приведете в вопросе собственные попытки решения, тогда и я смогу показать реализацию алгоритма в ответе. ?

→ Ссылка
Автор решения: Артурчик

Вот

a_list = [[1,0,3,4],[5,1,7,8],[9,2,2,4],[8,3,6,5],[2,4,5,6]]
a_dict_ = {}
for a in a_list: # перебор значений списка
    key = a[1] # ключ
    arr = [a[0]] + a[2:] # значение
    a_dict[key] = arr # добавление
print(a_dict)
→ Ссылка
Автор решения: Be3y4uu_K0T

Вы можете сделать так:

a_list = [[1,0,3,4],[5,1,7,8],[9,2,2,4],[8,3,6,5],[2,4,5,6]]
a_dict = {el.pop(1): el for el in a_list}
→ Ссылка