Python – Assign values to Values List

Given 2 dictionaries, assign values to value list elements mapping from dictionary 2.

Input : test_dict = {‘Gfg’ : [3, 6], ‘best’ :[9]}, look_dict = {3 : [1, 5], 6 : “Best”, 9 : 12}
Output : {‘Gfg’: {3: [1, 5], 6: ‘Best’}, ‘best’: {9: 12}}
Explanation : 3 is replaced by key 3 and value [1, 5] and so on.

Input : test_dict = {‘Gfg’ : [3, 6]}, look_dict = {3 : [1, 5], 6 : “Best”}
Output : {‘Gfg’: {3: [1, 5], 6: ‘Best’}}
Explanation : 3 is replaced by key 3 and value [1, 5] and so on.

Method #1 : Using nested dictionary comprehension

In this, we use inner dictionary comprehension to map values elements to dict 2, and outer dict is used to extract all keys from dictionary 1.



Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of 
# Assign values to Values List
# Using nested dictionary comprehension
  
# initializing dictionary
test_dict = {'Gfg' : [3, 6],
             'is' : [4, 2], 
             'best' :[9]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing lookup dict 
look_dict = {3 : [1, 5], 6 : "Best", 4 : 10, 9 : 12, 2 : "CS"}
  
# nested dictionaries to sought solution
res = {idx: {ikey: look_dict[ikey] for ikey in test_dict[idx]} for idx in test_dict}
  
# printing result 
print("The mapped dictionary : " + str(res)) 

chevron_right


Output

The original dictionary is : {'Gfg': [3, 6], 'is': [4, 2], 'best': [9]}
The mapped dictionary : {'Gfg': {3: [1, 5], 6: 'Best'}, 'is': {4: 10, 2: 'CS'}, 'best': {9: 12}}

Method #2 : Using items() + dictionary comprehension

Similar to above method, another one-liner, difference being that items() is used for element access.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of
# Assign values to Values List
# Using items() + dictionary comprehension
  
# initializing dictionary
test_dict = {'Gfg': [3, 6],
             'is': [4, 2],
             'best': [9]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing lookup dict
look_dict = {3: [1, 5], 6: "Best", 4: 10, 9: 12, 2: "CS"}
  
# nested dictionaries to sought solution
# items() used to access key-val pairs
res = {key: {ikey: ival for (ikey, ival) in look_dict.items(
) if ikey in val} for (key, val) in test_dict.items()}
  
# printing result
print("The mapped dictionary : " + str(res))

chevron_right


Output

The original dictionary is : {'Gfg': [3, 6], 'is': [4, 2], 'best': [9]}
The mapped dictionary : {'Gfg': {3: [1, 5], 6: 'Best'}, 'is': {4: 10, 2: 'CS'}, 'best': {9: 12}}



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.