Creating a dictionary from a list containing elements of the type “variable=value”
Given a list _list = [ ‘days=7’, ‘months=12’, ‘pi=3.17’, ‘moon=1’ ]
Objective is to create a dictionary _dict = { ‘days’ : ‘7’, ‘months’ : ‘12’, ‘pi’ : ‘3.17’, ‘moon’ : ‘1’ }
Python3 : Creating a dictionary from a list using split
_list = [ 'days=7', 'months=12', 'pi=3.17', 'moon=1' ]
_dict = dict(item.split('=') for item in _list)
print("Given list : " + str(_list))
print("Created dictionary : " + str(_dict))
Output
Given list : ['days=7', 'months=12', 'pi=3.17', 'moon=1']
Created dictionary : {'days': '7', 'months': '12', 'pi': '3.17', 'moon': '1'}
A slight variation to the above would be when some elements in the list don’t have a value. For example consider the below…
Given a list _list = [ ’true’, ‘days=7’, ‘false’, ‘months=12’, ‘pi=3.17’, ‘fun’, ‘moon=1’ ]
Objective is to create a dictionary _dict = { ’true’ : ‘NONE’, ‘days’ : ‘7’, ‘false’ : ‘NONE’, ‘months’ : ‘12’, ‘pi’ : ‘3.17’, ‘moon’ : ‘1’ }
Python3 : Creating a dictionary from a list using regex search
import re
_list = [ 'true', 'days=7', 'false', 'months=12', 'pi=3.17', 'fun', 'moon=1' ]
_dict = {}
for item in _list:
x = re.search(r'.*=.*', item)
if x:
key, value = item.split('=')
_dict[key] = value
else:
_dict[item] = 'NONE'
print("Given list : " + str(_list))
print("Created dictionary : " + str(_dict))
Output
Given list : ['true', 'days=7', 'false', 'months=12', 'pi=3.17', 'fun', 'moon=1']
Created dictionary : {'false': 'NONE', 'months': '12', 'days': '7', 'moon': '1', 'fun': 'NONE', 'pi': '3.17', 'true': 'NONE'}