Skip to content
Related Articles
Open in App
Not now

Related Articles

Python – All combination Dictionary List

Improve Article
Save Article
  • Last Updated : 11 Oct, 2020
Improve Article
Save Article

Given 2 lists, form all possible combination of dictionaries that can be formed by taking keys from list1 and values from list2.

Input : test_list1 = [“Gfg”, “is”, “Best”], test_list2 = [4] 
Output : [{‘Gfg’: 4, ‘is’: 4, ‘Best’: 4}]
Explanation : All combinations dictionary list extracted.
 

Input : test_list1 = [“Gfg”, “is”, “Best”], test_list2 = [5, 6] 
Output : [{‘Gfg’: 5, ‘is’: 5, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 5, ‘Best’: 6}, {‘Gfg’: 5, ‘is’: 6, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 6, ‘Best’: 6}, {‘Gfg’: 6, ‘is’: 5, ‘Best’: 5}, {‘Gfg’: 6, ‘is’: 5, ‘Best’: 6}, {‘Gfg’: 6, ‘is’: 6, ‘Best’: 5}, {‘Gfg’: 6, ‘is’: 6, ‘Best’: 6}] 
Explanation : All combinations dictionary list extracted. 
 

Method #1 : Using product() + dictionary comprehension + list comprehension

In this, we get all the combination possible using product() and dictionary comprehension generates each dictionary, list comprehension is used to iterate combinations generated.

Python3




# Python3 code to demonstrate working of 
# All combination Dictionary List
# Using product() + list comprehension + dictionary comprehension
from itertools import product
  
# initializing lists
test_list1 = ["Gfg", "is", "Best"]
test_list2 = [4, 5]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# generating combinations
temp = product(test_list2, repeat = len(test_list1))
  
# constructing dicts using combinations
res = [{key : val for (key , val) in zip(test_list1, ele)} for ele in temp]
  
# printing result 
print("The combinations dictionary : " + str(res))

Output:

The original list 1 is : [‘Gfg’, ‘is’, ‘Best’]
The original list 2 is : [4, 5]
The combinations dictionary : [{‘Gfg’: 4, ‘is’: 4, ‘Best’: 4}, {‘Gfg’: 4, ‘is’: 4, ‘Best’: 5}, {‘Gfg’: 4, ‘is’: 5, ‘Best’: 4}, {‘Gfg’: 4, ‘is’: 5, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 4, ‘Best’: 4}, {‘Gfg’: 5, ‘is’: 4, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 5, ‘Best’: 4}, {‘Gfg’: 5, ‘is’: 5, ‘Best’: 5}]

Method #2 : Using permutations() + dictionary comprehension + list comprehension [ For unique elements ]

If we require values to be all unique, permutations() can be used inplace of product() to achieve this task.

Python3




# Python3 code to demonstrate working of
# All combination Dictionary List
# Using product() + list comprehension + dictionary comprehension
from itertools import permutations
  
# initializing lists
test_list1 = ["Gfg", "is", "Best"]
test_list2 = [4, 5, 6]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# generating combinations
temp = list(permutations(test_list2, len(test_list1)))
  
# constructing dicts using combinations
res = [{key: val for (key, val) in zip(test_list1, ele)} for ele in temp]
  
# printing result
print("The combinations dictionary : " + str(res))

Output:

The original list 1 is : [‘Gfg’, ‘is’, ‘Best’]
The original list 2 is : [4, 5, 6]
The combinations dictionary : [{‘Gfg’: 4, ‘is’: 5, ‘Best’: 6}, {‘Gfg’: 4, ‘is’: 6, ‘Best’: 5}, {‘Gfg’: 5, ‘is’: 4, ‘Best’: 6}, {‘Gfg’: 5, ‘is’: 6, ‘Best’: 4}, {‘Gfg’: 6, ‘is’: 4, ‘Best’: 5}, {‘Gfg’: 6, ‘is’: 5, ‘Best’: 4}]


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!