gpt4 book ai didi

python - 检查字典中是否存在键。如果没有,追加

转载 作者:太空狗 更新时间:2023-10-30 00:23:02 25 4
gpt4 key购买 nike

我有一个从 json 数据创建的大型 python 字典,我正在从一个大字典创建一个较小的字典。大词典的某些元素有一个名为“详细信息”的键,而某些元素则没有。我想要做的是检查键是否存在于大字典的每个条目中,如果不存在,则将键“details”和值“No details available”附加到新字典。我在下面放了一些示例代码作为演示。 LargeDict 更大,我的代码中有很多键,但为了清晰起见,我将其保持简单。

LargeDict = {'results':
[{'name':'john','age':'23','datestart':'12/07/08','department':'Finance','details':'Good Employee'},
{'name':'barry','age':'26','datestart':'25/08/10','department':'HR','details':'Also does payroll'},
{'name':'sarah','age':'32','datestart':'13/05/05','department':'Sales','details':'Due for promotion'},
{'name':'lisa','age':'21','datestart':'02/05/12','department':'Finance'}]}

这就是我获取 SmallDict 数据的方式:

SmallDict = {d['name']:{'department':d['department'],'details':d['details']} for d in LargeDict['results']}

但是,当其中一个大型字典条目没有详细信息时,我遇到了一个关键错误。我说我需要使用 DefaultDict 模块是对的还是有更简单的方法?

最佳答案

您不需要 collections.defaultdict。您可以使用字典对象的 setdefault 方法。

d = {}
bar = d.setdefault('foo','bar') #returns 'bar'
print bar # bar
print d #{'foo': 'bar'}

正如其他人所指出的,如果您不想将键添加到字典中,您可以使用 get 方法。

这是一个旧的 reference我经常发现自己在看。

关于python - 检查字典中是否存在键。如果没有,追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11548302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com