在Python中修改字典

时间:2017-10-10 11:35:52

标签: python-2.7 dictionary

我有以下字典:

DATA = {"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", 
"key4": "AAA"}]}

我想改变"记录"例如" XX"所以我将有以下内容:

DATA = {"XX": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": 
"AAA"}]}

我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:1)

您无法以您呈现的方式直接更改字符串字典键。这样做的原因是密钥本身 - 同样是字符串或str对象 - 是不可变的。对于其他类型的键,例如对于用户定义的对象,这不一定适用。

您唯一的选择是将新密钥添加到现有字典中,或使用您想要的密钥创建新字典。

您可以为同一个名称DATA指定一个新词典,并将您想要的词条添加到新词典中(旧词典最终会被垃圾收集):

DATA = {'XX': DATA['records']}

重要提示:请注意,对旧DATA字典的任何其他引用都不会更新!出于这个原因,新词典方法可能不是你想要的。

或者,如果可以在字典中保留records键,则只需将XX成员添加到字典中并将其指向相同的值:

DATA['XX'] = DATA['records']

最后,如果您想要保留原始字典并从中删除records密钥,则必须分两步执行:

DATA['XX'] = DATA['records']
del DATA['records']

OR:

DATA['XX'] = DATA.pop('records')

请注意,即使是一行代码,最后一个建议仍然分两步进行。