过滤器dict只包含某些键?

问题:

我有一个dict有一大堆条目。我只对其中一些选择感兴趣。有没有一个简单的方法来修剪所有其他的?

回答:

构建新的词典:

dict_you_want = { your_key: old_dict[your_key] for your_key in your_keys }

使用字典理解。
如果您使用的是缺少它们的版本(即Python 2.6及更早版本),则使其成为dict((your_key, old_dict[your_key]) for ...)。这是一样的,虽然比较丑陋
请注意,与jnnnnn的版本不同,对于任何大小的old_dict,性能(仅取决于你的密钥数量)有稳定的性能。无论在速度和记忆方面。由于这是一个生成器表达式,它一次处理一个项目,并且不会查看old_dict的所有项目。
正在删除所有内容:

unwanted = set(keys) - set(your_dict)
for unwanted_key in unwanted: del your_dict[unwanted_key]

 
 Code问答: codewenda.com
Stackoverflow:Filter dict to contain only certain keys?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

84 − 78 =