# Python program to Convert Matrix to Dictionary Value List

• Last Updated : 24 Jan, 2021

Given Matrix, the task is to write a Python program to map each column’s values as customized keys from another list.

Input : test_list = [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]], map_list = [4, 5, 6]

Output : {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

Explanation : 4 is mapped with all the 0th index of lists, 4, 1 ,3, 10.

Input : test_list = [[4, 5, 6], [1, 3, 5], [3, 8, 1]], map_list = [4, 5, 6]

Output : {4: [4, 1, 3], 5: [5, 3, 8], 6: [6, 5, 1]}

Explanation : 4 is mapped with all the 0th index of lists, 4, 1 ,3.

Method 1 : Using dictionary comprehension + zip()

In this, mapping of columns with custom list index elements is done using zip(), dictionary comprehension is done to assign extracted keys to mapping values.

## Python3

 `# Python3 code to demonstrate working of``# Convert Matrix to Dictionary Value List``# Using dictionary comprehension + zip()``from` `collections ``import` `defaultdict`` ` `# initializing list``test_list ``=` `[[``4``, ``5``, ``6``], [``1``, ``3``, ``5``], [``3``, ``8``, ``1``], [``10``, ``3``, ``5``]]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# initializing map list ``map_list ``=` `[``4``, ``5``, ``6``]`` ` `# mapping column using zip(), dictionary comprehension for key``# converts to list of dictionary``temp ``=` `[{key : val ``for` `key, ``         ``val ``in` `zip``(map_list, idx)} ``for` `idx ``in` `test_list]`` ` `# convert to dictionary value list ``res ``=` `defaultdict(``list``) ``{res[key].append(sub[key]) ``for` `sub ``in` `temp ``for` `key ``in` `sub}`` ` `# printing result``print``(``"Converted Dictionary : "` `+` `str``(``dict``(res)))`

Output:

The original list is : [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]

Converted Dictionary : {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

Method 2 : Using dict() + list comprehension + zip()

In this, the task of mapping values to dictionary keys and conversion is done using dict() and zip() and dictionary comprehension. Rest functionalities are similar to the above method.

## Python3

 `# Python3 code to demonstrate working of``# Convert Matrix to Dictionary Value List``# Using dict() + list comprehension + zip()``from` `collections ``import` `defaultdict`` ` `# initializing list``test_list ``=` `[[``4``, ``5``, ``6``], [``1``, ``3``, ``5``], [``3``, ``8``, ``1``], [``10``, ``3``, ``5``]]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# initializing map list ``map_list ``=` `[``4``, ``5``, ``6``]`` ` `# mapping column using zip() and conversion using using dict()``# converts to list of dictionary``temp ``=` `[``dict``(``zip``(map_list, sub)) ``for` `sub ``in` `test_list]`` ` `# convert to dictionary value list ``res ``=` `defaultdict(``list``) ``{res[key].append(sub[key]) ``for` `sub ``in` `temp ``for` `key ``in` `sub}`` ` `# printing result``print``(``"Converted Dictionary : "` `+` `str``(``dict``(res)))`

Output:

The original list is : [[4, 5, 6], [1, 3, 5], [3, 8, 1], [10, 3, 5]]

Converted Dictionary : {4: [4, 1, 3, 10], 5: [5, 3, 8, 3], 6: [6, 5, 1, 5]}

My Personal Notes arrow_drop_up