我正在使用字典但不是替换里面的值我想为它添加新值,下面就是我现在用新的字符替换字典中的现有值。
样本值
source: something.txt
suspicious_key: GFATGTFBFD
startPos: 23
endPos:32
之后的更改是为同一文档添加了新的suspicious_key
,startPos
和endPos
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}}
我想在同一来源下为可疑密钥添加另一组值,startPos,endPos
我试过update()
,但似乎没有用。
dictionary[source].update({suspicious_key: {"startPos":index_start, "endPos": index_end}})
我该怎么办呢?
答案 0 :(得分:1)
你的dict.update()
更新了错误的词典;它有效地与分配给suspicious_key
密钥完全相同。
更新suspicious_key
密钥引用的字典:
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
键将添加到嵌套字典中,而不是完全替换嵌套字典。
答案 1 :(得分:0)
您只是想要存储在字典中的对象列表吗?
我假设你想要获得一系列由suspicious_key识别的对象。
添加第一项:
dictionary[source] = [{suspicious_key: {"startPos":index_start, "endPos": index_end}}]
然后当你想要添加下一个项目时:
dictionary[source].append({suspicious_key: {"startPos":index_start, "endPos": index_end}})
因此,当您要求字典[来源]时,您将获得一个对象列表。