2011-05-11 61 views
3

假設你有一個像一本字典:去除多餘的項目添加到Python字典時

my_dict = {'foo' : {'bar' : {}}} 

而且要進行分配的順序如下:

my_dict['foo']['bar']['first'] = 1 
my_dict['foo']['bar']['second'] = 2 

很明顯,有一定的冗餘度的事實上,my_dict['foo']['bar']重複。有什麼辦法可以防止這種冗餘?

謝謝!

回答

8

不是真的,當然節省了明顯的中間變量:

foo_bar = my_dict['foo']['bar'] 
foo_bar['first'] = 1 
foo_bar['second'] = 2 

如何的Python應該知道你想,除非你告訴它這樣來指代相同的詞典兩次?

3

,你可以在臨時持有它:

temp = my_dict['foo']['bar'] 
temp['first'] = 1 
temp['second'] = 1 

,或者您可以使用更新:

my_dict['foo']['bar'].update([('first', 1), ('second', 2)]) 

或有其他的選擇。

5

你可以這樣做:

my_dict['foo']['bar'].update({'first': 1, 'second': 2})