2014-01-13 22 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")) 
相关问题