 Open in App
Not now

# Python – Merge List value Keys to Matrix

• Last Updated : 10 Mar, 2023

Sometimes, while working with Python dictionary, we can have a problem in which we need to perform the merger of certain keys in dictionary. In this, we tend to form a matrix of resultant singular key. This kind of problem can have applications in data domains. Let’s discuss certain way in which this task can be performed.

Input : test_dict = {‘Maths’: [1, 2], ‘gfg’: [4, 5], ‘CS’: }
Output : {‘merge_key’: [[4, 5], , [1, 2]]}

Input : test_dict = {‘Maths’: , ‘gfg’: , ‘CS’: }
Output : {‘merge_key’: [, , ]}

Method 1: Using loop + pop() This task can be performed using brute force manner. In this, we iterate the keys and remove the keys using pop, reinitialize them after merging into a matrix.

## Python3

 `# Python3 code to demonstrate working of``# Merge List value Keys to Matrix``# Using loop + pop()` `# initializing dictionary``test_dict ``=` `{``'gfg'` `: [``4``, ``5``, ``6``],``             ``'is'` `: [``8``, ``8``, ``9``],``             ``'CS'` `: [``1``, ``3``, ``8``],``             ``'Maths'` `: [``1``, ``2``]}` `# printing original dictionary``print``("The original dictionary : " ``+` `str``(test_dict))` `# initializing list``que_list ``=` `[``'gfg'``, ``'CS'``, ``'Maths'``]` `# Merge List value Keys to Matrix``# Using loop + pop()``new_data ``=` `[test_dict.pop(ele) ``for` `ele ``in` `que_list]``test_dict["merge_key"] ``=` `new_data` `# printing result``print``("The dictionary after merging : " ``+` `str``(test_dict))`

Output :

The original dictionary : {‘is’: [8, 8, 9], ‘gfg’: [4, 5, 6], ‘Maths’: [1, 2], ‘CS’: [1, 3, 8]} The dictionary after merging : {‘is’: [8, 8, 9], ‘merge_key’: [[4, 5, 6], [1, 3, 8], [1, 2]]}

Method 2: Using for loops

Approach

1. Initiate a for loop to access dictionary keys
2. If key is present in que_list append value of key to a list x
3. If not present assign that key and value to new dictionary res
4. After end of for loop assign key “merge_key” with value list x
5. Display res

## Python3

 `# Python3 code to demonstrate working of``# Merge List value Keys to Matrix` `# initializing dictionary``test_dict ``=` `{``'gfg'` `: [``4``, ``5``, ``6``],``            ``'is'` `: [``8``, ``8``, ``9``],``            ``'CS'` `: [``1``, ``3``, ``8``],``            ``'Maths'` `: [``1``, ``2``]}` `# printing original dictionary``print``(``"The original dictionary : "` `+` `str``(test_dict))` `# initializing list``que_list ``=` `[``'gfg'``, ``'CS'``, ``'Maths'``]` `# Merge List value Keys to Matrix``x``=``[]``res``=``dict``()``for` `i ``in` `list``(test_dict.keys()):``    ``if` `i ``in` `que_list:``        ``x.append(test_dict[i])``    ``else``:``        ``res[i]``=``test_dict[i]``res[``"merge_key"``]``=``x``        ` `# printing result``print``(``"The dictionary after merging : "` `+` `str``(res))`

Output

```The original dictionary : {'gfg': [4, 5, 6], 'is': [8, 8, 9], 'CS': [1, 3, 8], 'Maths': [1, 2]}
The dictionary after merging : {'is': [8, 8, 9], 'merge_key': [[4, 5, 6], [1, 3, 8], [1, 2]]}```

Time Complexity : O(N)
Auxiliary Space : O(N)

Method 3: Using dictionary comprehension

This approach uses a dictionary comprehension to create a new dictionary new_data that only includes the keys from que_list. Then, it converts the values of this new dictionary to a list and adds it to the original dictionary under the key “merge_key”. This approach should have the same time complexity as the previous methods, but it may require more auxiliary space due to the creation of the new dictionary.

## Python3

 `# Python3 code to demonstrate working of``# Merge List value Keys to Matrix``# Using dictionary comprehension` `# initializing dictionary``test_dict ``=` `{``'gfg'` `: [``4``, ``5``, ``6``],``             ``'is'` `: [``8``, ``8``, ``9``],``             ``'CS'` `: [``1``, ``3``, ``8``],``             ``'Maths'` `: [``1``, ``2``]}` `# printing original dictionary``print``(``"The original dictionary : "` `+` `str``(test_dict))` `# initializing list``que_list ``=` `[``'gfg'``, ``'CS'``, ``'Maths'``]` `# Merge List value Keys to Matrix``# Using dictionary comprehension``new_data ``=` `{key: test_dict[key] ``for` `key ``in` `que_list}``test_dict[``"merge_key"``] ``=` `list``(new_data.values())` `# printing result``print``(``"The dictionary after merging : "` `+` `str``(test_dict))`

Output

```The original dictionary : {'gfg': [4, 5, 6], 'is': [8, 8, 9], 'CS': [1, 3, 8], 'Maths': [1, 2]}
The dictionary after merging : {'gfg': [4, 5, 6], 'is': [8, 8, 9], 'CS': [1, 3, 8], 'Maths': [1, 2], 'merge_key': [[4, 5, 6], [1, 3, 8], [1, 2]]}```

Time complexity: O(n), where n is the number of elements in the dictionary,
Auxiliary space: O(n).

My Personal Notes arrow_drop_up