有沒有什麼辦法來動態創建丟失的鍵如果我想要在子字典中設置一個變量。遞歸字典創建python
基本上我想創建任何丟失的鍵並設置我的值。
self.portdict[switchname][str(neighbor['name'])]['local']['ports'] = []
目前,我這樣做,但它的凌亂:
if not switchname in self.portdict:
self.portdict[switchname] = {}
if not str(neighbor['name']) in self.portdict[switchname]:
self.portdict[switchname][str(neighbor['name'])] = {}
if not 'local' in self.portdict[switchname][str(neighbor['name'])]:
self.portdict[switchname][str(neighbor['name'])]['local'] = {}
if not 'ports' in self.portdict[switchname][str(neighbor['name'])]['local']:
self.portdict[switchname][str(neighbor['name'])]['local']['ports'] = []
有沒有辦法中的一個或兩行而不是這樣做呢?
遞歸'defaultdict'廠是一個有趣的想法!我沒有想過這樣做。 – DaoWen 2014-10-06 19:52:45
當OP在最後一個深度想要一個「列表」時失敗。 – o11c 2014-10-06 20:18:27
@ o11c - 不是。這意味着OP需要明確地設置它。 'd''foo'] ['bar'] ['baz'] = []'或'd ['foo'] ['bar'] = defaultdict(list)'OP必須爲其他任何人答案以及... – mgilson 2014-10-06 20:41:43