2014-01-13 47 views
3

以我爲例,我需要一本字典的一部分轉移到永久存儲:字典的複製部分(包括它的鍵,它的值)

adict={'a':'aaa','b':'bbb','c':'ccc'} 
newdict={'a':'aaa','b':'bbb'} 

我試圖用dict.fromkeys(['一','b']),這隻會給我默認的None值,除非我特定這些鍵的值。我希望有一些函數會自動將默認值賦給原始字典已經有的值。像

newdict=adict.fromkeysautomatic(['a','b']) 

東西,我知道這是很容易寫一個函數來這樣做,但我相信應該已經有一些內置的機制,因爲這應該是一些常見的行爲。但沒有通過搜索自己得到它。

+2

這不是一個好主意,做'字典= ...'因爲'dict'已經是一個函數了。 – Keeler

+0

我不認爲有一個內置的字典方法來做到這一點,你必須選擇字典理解或調用某種函數來映射值。 –

回答

13

使用字典理解:

>>> d = {'a':'aaa','b':'bbb','c':'ccc'} 
>>> newdict = {key:d[key] for key in ['a', 'b']} 
>>> newdict 
{'a': 'aaa', 'b': 'bbb'} 

邊注:請不要使用dict作爲變量名。它暗影內置dict function

1

避免了字典理解這是唯一可以在Python的新版本(2.7+),你也可以這樣做:

d = {'a':'aaa','b':'bbb','c':'ccc'} 
dd = dict((k, d[k]) for k in ("a", "b")) 
相關問題