复制字典的一部分(它的键及其值)

时间:2014-01-13 04:47:14

标签: python dictionary

在我的情况下,我需要将字典的一部分转移到持久存储:

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

我尝试使用dict.fromkeys(['a','b']),这只给我默认的None值,除非我特定这些键的值。我希望有一些功能自动默认值到原来的dict已经有的。像

这样的东西
newdict=adict.fromkeysautomatic(['a','b'])

我知道写一个函数很容易这样做,但我相信应该有一些内置机制,因为这应该是一些常见的行为。但是没有通过搜索自己得到它。

2 个答案:

答案 0 :(得分:19)

使用dict理解:

>>> 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 :(得分:1)

避免 dict理解,这只适用于较新版本的Python( 2.7 + ),您也可以这样做:

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