小编典典

过滤字典以仅包含某些键?

all

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


阅读 170

收藏
2022-03-04

共1个答案

小编典典

构建一个新的字典:

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 ...). 是一样的,虽然更丑。

old_dict请注意,与 jnnnnn 的版本不同,这对于任何大小的 s 都具有稳定的性能(仅取决于 your_keys 的数量)
。无论是速度还是内存。由于这是一个生成器表达式,它一次处理一个项目,它不会查看 old_dict 的所有项目。

就地删除所有内容:

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