我试图在将dict传递给变量时排除某些键。例如。
dict1 = {
'id': 1,
'name' : 'John Woe',
'flag' : True,
'position' : 'Developer'
}
现在,我希望在将密钥flag
或任何指定密钥传递给dict2
变量时将其排除。通常我可以简单地硬编码分配它,但我想要一个动态的方法。
如:
dict2 = dict1.exclude(['flag', 'position'])
答案 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}}解决方案。