获取一个Python字典的子集
我有一本字典:
{'key1':1, 'key2':2, 'key3':3}
我需要将该字典的子集传递给第三方代码。 它只需要一个包含密钥['key1', 'key2', 'key99']
,如果它获得另一个密钥(例如'key3'
),它就会爆炸混乱。 有问题的代码是不受我控制的,所以我留在一个我必须清理我的字典的位置。
什么是最好的方法来限制字典到一组键?
鉴于上面的示例字典和允许的键,我想:
{'key1':1, 'key2':2}
In [38]: adict={'key1':1, 'key2':2, 'key3':3} In [41]: dict((k,adict[k]) for k in ('key1','key2','key99') if k in adict) Out[41]: {'key1': 1, 'key2': 2}
在Python3(或Python2.7或更高版本)中,您也可以使用字典理解 :
>>> {k:adict[k] for k in ('key1','key2','key99') if k in adict} {'key2': 2, 'key1': 1}
dict(filter(lambda i:i[0] in validkeys, d.iteritems()))