Создать словарь из многомерного (вложенного) списка
Имеется многомерный список
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}