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

Python 传递到变量时排除dict的特定键,python,Python,我试图在向变量传递dict时排除一些键。比如说 dict1 = { 'id': 1, 'name' : 'John Woe', 'flag' : True, 'position' : 'Developer' } 现在,我想在传递给dict2变量时排除key标志或任何指定的键。通常我可以简单地硬编码分配它,但我需要一个动态的方法 例如: dict2 = dict1.exclude(['flag', 'position']) 作为对评论中批评这是O(MN)-键可以

我试图在向变量传递dict时排除一些键。比如说

dict1 = {
    'id': 1,
    'name' : 'John Woe',
    'flag' : True,
    'position' : 'Developer'
}
现在,我想在传递给
dict2
变量时排除key
标志
或任何指定的键。通常我可以简单地硬编码分配它,但我需要一个动态的方法

例如:

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

作为对评论中批评这是
O(MN)
-
键可以是一个集合,与
copy/pop
解决方案相比,它将使
O(N)
的垃圾收集负担更少。

可以排除一个或多个键?@ShiftN'Tab yes,查看我的更新。你知道如果dict1.copy()
和dict2.pop('flag')在dicts有大量键的情况下会更有效吗?@VMRuiz我认为这是可以的,因为它可以在两行代码中帮助处理许多键。我的意思是O(N)和O(MN),但这实际上取决于用例,这超出了当前问题的范围
keys_to_exclude = set(('flag',))
dict2 = {k:v for k,v in dict1.iteritems() if k not in keys_to_exclude}