2012-07-18 22 views
2

我有2種類型的字典:Pythonically轉化字典

dict1 = {'field1':'value1', 'field2':'value2',...... } 
dict2 = {'field1':'value1_1', 'field2':'value2_2','field3':'value3_3'} 

我想dict1的字段1和字段2的值是dict2的字段1和字段2的值。

所以我想dict1是:dict1 = {'field1':'value1_1', 'field2':'value2_2'},但dict1有許多其他鍵/值對不在dict2,我想保持相同。

是什麼做的最Python的方式?

回答

5

事情是這樣的,也許:

dict1.update({key : dict2[key] for key in dict1 if key in dict2}) 

或用一個簡單的循環:

for key in dict1: 
    if key in dict2: 
     dict1[key] = dict2[key] 
+1

或'dict1.update()'如果以更新的地方dict1是很重要的 - 儘管你的簡單循環做同樣的事情。 – mgilson 2012-07-18 15:06:41

+0

@mgilson:葉氏,將做到這一點,在現場更新的感謝:) – mouad 2012-07-18 15:07:30

+0

@mgilson好一點。 – 2012-07-18 15:08:44

2

你可以嘗試的字典理解:

dict1 = {key : value for key, value in dict2.iteritems() if key in dict1} 

編輯在看到mouad的回答是:

dict1 = {key : dict2[key] for key in dict1}