Reputation: 193
How can I make using python a dict using two list
list_one_keys = ['key1', 'key2', 'key3', 'key4']
Nested list:
list_two_values = [['a1var1', 'a1var2', 'a1var3', 'a1var4'], ['a2var1', 'a2var2', 'a2var3', 'a2var4']]
desired result a python dict:
thisdict = {
"dict1"{
"key1": "a1var1",
"key2": "a1var2",
"key3": "a1var3",
"key4": "a1var4"
},
"dict2":{
"key1": "a2var1",
"key2": "a2var2",
"key3": "a2var3",
"key4": "a2var4"
}
}
Thank you.
Upvotes: 3
Views: 69
Reputation: 1917
list_one_keys = ['key1', 'key2', 'key3', 'key4']
list_two_values = [['a1var1', 'a1var2', 'a1var3', 'a1var4'], ['a2var1', 'a2var2', 'a2var3', 'a2var4']]
d = {}
for i, sub_list in enumerate(list_two_values):
entry_name = "dict" + str(i+ 1)
for x, y in zip(list_one_keys, sub_list):
if entry_name not in d:
d[entry_name] = {}
d[entry_name].update({x: y})
print(d)
small explanation:
list_two_values
sub-lists using the
enumerate
zip
for parallel iteration over each sub-list(from step
1) and list_one_keys
output:
{'dict1': {'key1': 'a1var1', 'key2': 'a1var2', 'key3': 'a1var3', 'key4': 'a1var4'}, 'dict2': {'key1': 'a2var1', 'key2': 'a2var2', 'key3': 'a2var3', 'key4': 'a2var4'}}
Upvotes: 0
Reputation: 18208
You can try something with combination of zip
, enumerate
, and dict
:
result = {'dict{}'.format(index+1):dict(zip(list_one_keys, val))
for index, val in enumerate(list_two_values)}
Output:
{'dict1': {'key1': 'a1var1',
'key2': 'a1var2',
'key3': 'a1var3',
'key4': 'a1var4'},
'dict2': {'key1': 'a2var1',
'key2': 'a2var2',
'key3': 'a2var3',
'key4': 'a2var4'}}
Upvotes: 2