Python 字典替换以前的值

Python 字典替换以前的值,python,dictionary,Python,Dictionary,我正在使用一个字典,但我不想替换字典中的值,而是想向其中添加新值,下面是我现在拥有的,它用新值替换字典中的现有值 样本值 source: something.txt suspicious_key: GFATGTFBFD startPos: 23 endPos:32 之后发生的变化是为同一文档添加了新的可疑密钥、开始操作系统和结束操作系统 source: something.txt suspicious_key: GFATGTFBFD

我正在使用一个字典,但我不想替换字典中的值,而是想向其中添加新值,下面是我现在拥有的,它用新值替换字典中的现有值

样本值

source: something.txt
    suspicious_key: GFATGTFBFD
        startPos: 23
        endPos:32
之后发生的变化是为同一文档添加了新的
可疑密钥
开始操作系统
结束操作系统

source: something.txt

    suspicious_key: GFATGTFBFD
        startPos: 23
        endPos:32

    <<<<Second entry under same key>>>>

    suspicious_key: GKDTFSFSAS
        startPos: 32
        endPos:45

dictionary[source] = {suspicious_key: {"startPos":index_start, "endPos": index_end}}
我该怎么办呢?

你的
字典更新()
更新了错误的字典;它有效地执行与分配给一个
可疑的\u键
键完全相同的操作

更新字典中的
可疑\u键
键引用:

dictionary[source][suspicious_key].update({"startPos":index_start, "endPos": index_end})
如果该键可能丢失,请使用
dict.setdefault()
方法为您插入一个空字典:

dictionary[source].setdefault(
    suspicious_key, {}).update(
    {"startPos":index_start, "endPos": index_end})

现在,
startPos
endPos
键将被添加到嵌套字典中,而不是完全替换嵌套字典。

您不想只在字典中存储对象列表吗

我假设对于每个源,您都希望获得一组由可疑密钥标识的对象

添加第一项:

dictionary[source] = [{suspicious_key: {"startPos":index_start, "endPos": index_end}}]
然后,当您要添加下一个项目时:

dictionary[source].append({suspicious_key: {"startPos":index_start, "endPos": index_end}})

因此,当您请求dictionary[source]时,您将得到一个对象列表。

是的,但这样,如果我理解正确,则键必须相同,对吗?在我的例子中,我想添加新的密钥startPos,endPos,而不仅仅是startPos,endPos。可疑的_键将永远不会丢失,但它将与以前的不同one@PetrosKyriakou:请在您的问题中添加示例输入和输出,因为不清楚您的期望值。通过一些示例输入和输出,我甚至可以为您构建一个差异的快速演示。感谢您的输入,现在我明白了,“dict”对象没有属性“append”。append方法来自存储在字典中的列表对象。因此,您如何知道
dict.update()
“似乎不起作用”?您期望的输出是什么?您得到了什么?
dictionary[source].append({suspicious_key: {"startPos":index_start, "endPos": index_end}})