我有以下字典
mydict = { 'name': "Hello",
'address': { 'place': 'India',
'street': {
'One': 'Street one', 'Two': 'Street Two' }
},
'Job': 'Sleep' }
所以我可以像mydict ['address'] ['street'] ['One']那样访问Street one的值
现在我正在考虑像这样简化这个
我有另一本字典如下
dict_map = {'Name': ['name'],
'AddressOne': ['address','street','One'] }
有没有办法可以使用dict_map直接访问元素'One'['AddressOne']
由于 382 4
答案 0 :(得分:0)
有很多方法可以做到这一点。例如:
class DictMapper(object):
def __init__(self, d, d_map):
self.d = d
self.dict_map = d_map
def __getitem__(self, item):
return reduce(lambda res, path: res[path], self.dict_map[item], self.d)
用法:
dm = DictMapper(mydict, dict_map)
print dm["AddressOne"]