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
# 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) |
[{‘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
# 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) |
[[{‘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’}]]
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.