python - Access dictionary from a list -


i have dictionaries follows

d1={}   d2={}   d3={}   

values of dictionary keys contains list
, list,

l1=[d1,d2,d3] 

list contains names of dictionaries available. want iterate through dictionaries available through list contains dictionary names.

how can access dictionaries through list ?

>>> l1 = [d1,d2,d3] >>> d in l1:         k,v in d.items():               print(k,v) 

a better example

d1 = {"a":"a"} d2 = {"b":"b"} d3 = {"c":"c"} l1 = [d1,d2,d3] d in l1:     k,v in d.items():         print("key = {0}, value={1}".format(k,v)) 

produces

>>>  key = a, value=a key = b, value=b key = c, value=c 

if contain names of dictionaries i.e "d1" can (which produces same result above):

d1 = {"a":"a"} d2 = {"b":"b"} d3 = {"c":"c"} l1 = ['d1','d2','d3'] dname in l1:     k,v in globals()[dname].items():         print("key = {0}, value={1}".format(k,v)) 

though wouldn't recommend such approach. (note: locals() if dictionaries in local scope)

when have dictionary has list associated key can go on list so:

d1 = {"a":[1,2,3]} d2 = {"b":[4,5,6]} l1=["d1","d2"]  d in l1:     k,v in globals()[d].items(): #or d.items() if values in l1 references dictionaries         print("dictionray {0}, under key {1} contains:".format(d,k))         e in v:             print("\t{0}".format(e)) 

producing

dictionray d1, under key contains:     1     2     3 dictionray d2, under key b contains:     4     5     6 

Comments