Open In App

Python | Combining values from dictionary of list

Last Updated : 06 Mar, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
Given a dictionary of list values, the task is to combine every key-value pair in every combination.
Input : {"Name" : ["Paras", "Chunky"], "Site" : ["Geeksforgeeks", "Cyware", "Google"] } Output: [{'Site': 'Geeksforgeeks', 'Name': 'Paras'}, {'Site': 'Cyware', 'Name': 'Paras'}, {'Site': 'Google', 'Name': 'Paras'}, {'Site': 'Geeksforgeeks', 'Name': 'Chunky'}, {'Site': 'Cyware', 'Name': 'Chunky'}, {'Site': 'Google', 'Name': 'Chunky'}]
Method #1: Using itertools and sorting Python3 1==
# Python code to combine every key value
# pair in every combinations

# List initialization
Input = {
"Bool" : ["True", "False"],
"Data" : ["Int", "Float", "Long Long"],
}

# Importing
import itertools as it

# Sorting input
sorted_Input = sorted(Input)

# Using product after sorting
Output = [dict(zip(sorted_Input, prod)) 
          for prod in it.product(*(Input[sorted_Input]
          for sorted_Input in sorted_Input))]

# Printing output
print(Output)
Output:
[{'Bool': 'True', 'Data': 'Int'}, {'Bool': 'True', 'Data': 'Float'}, {'Bool': 'True', 'Data': 'Long Long'}, {'Bool': 'False', 'Data': 'Int'}, {'Bool': 'False', 'Data': 'Float'}, {'Bool': 'False', 'Data': 'Long Long'}]
  Method #2: Using Zip Python3 1==
# Python code to combine every key value
# pair in every combinations

# Importing
import itertools

# Input Initialization
Input = {
"Bool" : ["True", "False"],
"Data" : ["Int", "Float", "Long Long"],
}

# using zip and product without sorting
Output = [[{key: value} for (key, value) in zip(Input, values)] 
              for values in itertools.product(*Input.values())]
                
# Printing output
print(Output)
Output:
[[{'Data': 'Int'}, {'Bool': 'True'}], [{'Data': 'Int'}, {'Bool': 'False'}], [{'Data': 'Float'}, {'Bool': 'True'}], [{'Data': 'Float'}, {'Bool': 'False'}], [{'Data': 'Long Long'}, {'Bool': 'True'}], [{'Data': 'Long Long'}, {'Bool': 'False'}]]

Practice Tags :

Similar Reads