I do have a list as given below -
keyList1 = ["Person", "Male", "Boy", "Student", "id_123", "Name"]
value1 = "Roger"
How can I generate dynamic dictionary which can be retrieved as below -
mydict["Person"]["Male"]["Boy"]["Student"]["id_123"]["Name"] = value
The list could be anything; Variable Length or consisting of "N" number of elements unknown to me...
Now I do have another list, so that My dictionary should be updated accordingly
keyList2 = ["Person", "Male", "Boy", "Student", "id_123", "Age"]
value2 = 25
i.e. If Keys "Person", "Male", "Boy", "Student", "id_123" already exists, the new key "age" should be appended ...
I'm just learning python, so my code could be not very pythonic, but here's my code
d = {}
keyList1 = ["Person", "Male", "Boy", "Student", "id_123", "Name"]
keyList2 = ["Person", "Male", "Boy", "Student", "id_123", "Age"]
value1 = "Roger"
value2 = 3
def insert(cur, list, value):
if len(list) == 1:
cur[list[0]] = value
return
if not cur.has_key(list[0]):
cur[list[0]] = {}
insert(cur[list[0]], list[1:], value)
insert(d, keyList1, value1)
insert(d, keyList2, value2)
{'Person': {'Male': {'Boy': {'Student': {'id_123': {'Age': 3, 'Name': 'Roger'}}}}}}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With