我有一个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 ...). 是一样的,虽然更丑。
dict((your_key, old_dict[your_key]) for ...)
old_dict请注意,与 jnnnnn 的版本不同,这对于任何大小的 s 都具有稳定的性能(仅取决于 your_keys 的数量) 。无论是速度还是内存。由于这是一个生成器表达式,它一次处理一个项目,它不会查看 old_dict 的所有项目。
old_dict
就地删除所有内容:
unwanted = set(keys) - set(your_dict) for unwanted_key in unwanted: del your_dict[unwanted_key]