2016-09-22 70 views
0

我有以下字典我如何将字符串转换为访问多维字典

mydict = { 'name': "Hello", 
      'address': { 'place': 'India', 
         'street': { 
            'One': 'Street one', 'Two': 'Street Two' } 
         }, 
      'Job': 'Sleep' } 

所以我可以访问街之一的值一样mydict [“地址”] [“街”] [“一”]

现在我想简化此类似这样的

我有另一种解释像下面

dict_map = {'Name': ['name'], 
      'AddressOne': ['address','street','One'] } 

是否有使用dict_map [“AddressOne”]

感谢 什么办法可以直接访问元素“一” 382 4

+1

是的,有很多种方法。你在想什么? –

+0

@SergeyGornostaev - 我还在等待最近24分钟的代码 –

+0

感谢您指出这一点。一些如何在我的搜索中,这个线程没有出现。 – user2677279

回答

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"]