Python 将一个键插入字典中另外 2 个键之间

问题描述 投票:0回答:1

我在 python 脚本中有一个嵌套字典,我需要将一个新键插入该字典中的一个非常特定的位置。我知道需要插入新钥匙的位置周围钥匙的名称,但我有点困惑如何执行此操作。我唯一的想法是将所有子键添加到临时字典中,将它们从原始字典中删除,添加我想要的内容,然后重新添加原始键,但我认为有一种更简单的方法可以做到这一点。

    original_dict = {
        "California" : {
            "San Diego": 100,
            "Los Angeles": 200,
        }
    }  

如何在 SD 和 LA 之间插入键值(“San Francisco”,150)?正在做

   original_dict["California"]["San Francisco"]=150

将新密钥添加到末尾,这不是我想要的位置(摄取文件的人也没有)。谷歌一无所获。

json python-3.x dictionary
1个回答
0
投票

正如评论中提到的,您不能在字典中间插入项目。您将必须创建一个新的子词典并将其放入原始词典中。 例如,可以使用元组列表:

original_dict = {
    "California" : {
        "San Diego": 100,
        "Los Angeles": 200,
    }
}  
parent_key = "California"
new_item = ("San Francisco", 150)

siblings = list(original_dict[parent_key].items())
siblings.append(new_item)
siblings.sort(key = lambda e: e[1])

original_dict[parent_key] = dict(siblings)

print(original_dict)

输出

{'California': {'San Diego': 100, 'San Francisco': 150, 'Los Angeles': 200}}

可以说可以实施更有效的解决方案:

  1. 删除 (
    dict.pop
    ) 插入索引后的元素。
  2. 收集它们(从第 1 步开始)。
  3. 放置新物品。
  4. 将所有收集到的内容放入步骤 #2。
© www.soinside.com 2019 - 2024. All rights reserved.