You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据键列表复制字典并保留指定键对应的条目?

如何便捷复制字典并仅保留所需条目?

哈哈,这个问题我刚入门Python时也踩过同样的坑!直接用列表list_of_keys当字典索引mydict[list_of_keys]肯定行不通,Python字典根本不支持这种语法~ 给你分享几个实用又Pythonic的方法,轻松生成你想要的newdict:

方法1:字典推导式(最推荐)

这是最简洁高效的写法,也是社区里最常用的方案:

mydict = {'A':'dog', 'B':'cat', 'C':'mouse'}
list_of_keys = ['A', 'B']
newdict = {key: mydict[key] for key in list_of_keys}

如果担心list_of_keys里有字典不存在的键(会触发KeyError),可以加个判断过滤掉:

newdict = {key: mydict[key] for key in list_of_keys if key in mydict}

方法2:用dict()构造器+生成器表达式

这是Python 2时代流传下来的写法,Python 3里也兼容,适合习惯用构造器的同学:

newdict = dict((key, mydict[key]) for key in list_of_keys)

方法3:借助filter()函数过滤键值对

如果你喜欢用内置函数处理,也可以这么写,但性能上比推导式稍逊(因为要遍历字典所有键值对):

newdict = dict(filter(lambda item: item[0] in list_of_keys, mydict.items()))

额外小技巧:安全处理不存在的键

如果list_of_keys里可能包含字典没有的键,又不想报错,用get()方法可以给不存在的键设默认值(比如None):

newdict = {key: mydict.get(key, None) for key in list_of_keys}

内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 14:32:34