传递给变量时排除dict的特定键

时间:2017-04-25 18:39:34

标签: python

我试图在将dict传递给变量时排除某些键。例如。

dict1 = {
    'id': 1,
    'name' : 'John Woe',
    'flag' : True,
    'position' : 'Developer'
}

现在,我希望在将密钥flag或任何指定密钥传递给dict2变量时将其排除。通常我可以简单地硬编码分配它,但我想要一个动态的方法。

如:

dict2 = dict1.exclude(['flag', 'position'])

1 个答案:

答案 0 :(得分:2)

keys_to_exclude = set(('flag',))
dict2 = {k:v for k,v in dict1.iteritems() if k not in keys_to_exclude}

作为对评论中的批评的回应O(MN) - keys_to_exclude可以是一个集合,与O(N)相比,copy/pop对垃圾收集的负担较小{1}}解决方案。