gpt4 book ai didi

python - 当数据具有现有键时更新嵌套字典

转载 作者:太空狗 更新时间:2023-10-29 17:28:12 24 4
gpt4 key购买 nike

我正在尝试更新嵌套字典中的值,而不会在键已存在时覆盖以前的条目。例如,我有一本字典:

  myDict = {}
myDict["myKey"] = { "nestedDictKey1" : aValue }

给予,

 print myDict
>> { "myKey" : { "nestedDictKey1" : aValue }}

现在,我想在 "myKey"

下添加另一个条目
myDict["myKey"] = { "nestedDictKey2" : anotherValue }}

这将返回:

print myDict
>> { "myKey" : { "nestedDictKey2" : anotherValue }}

但是我想要:

print myDict
>> { "myKey" : { "nestedDictKey1" : aValue ,
"nestedDictKey2" : anotherValue }}

有没有办法用新值更新或附加“myKey”,而不覆盖以前的值?

最佳答案

这是一个非常好的general solution to dealing with nested dicts :

import collections
def makehash():
return collections.defaultdict(makehash)

这允许在任何级别设置嵌套键:

myDict = makehash()
myDict["myKey"]["nestedDictKey1"] = aValue
myDict["myKey"]["nestedDictKey2"] = anotherValue
myDict["myKey"]["nestedDictKey3"]["furtherNestedDictKey"] = aThirdValue

对于单级嵌套,可以直接使用defaultdict:

from collections import defaultdict
myDict = defaultdict(dict)
myDict["myKey"]["nestedDictKey1"] = aValue
myDict["myKey"]["nestedDictKey2"] = anotherValue

下面是一种只使用 dict 的方法:

try:
myDict["myKey"]["nestedDictKey2"] = anotherValue
except KeyError:
myDict["myKey"] = {"nestedDictKey2": anotherValue}

关于python - 当数据具有现有键时更新嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27118687/

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