You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现向Python字典开头添加新值并使原有键依次递增后移?

实现字典头部插入并后移原有键值对

嘿,这个需求很好实现,咱们可以写个简单函数来搞定它。核心思路就是先把原字典的内容按顺序取出来,构建新字典时先放新元素,再把原来的元素键加1后依次放入就行。

直接上代码示例:

def add_item_to_dict_start(original_dict, new_item):
    # 按键的升序获取原字典的键值对,确保顺序绝对正确
    sorted_original_items = sorted(original_dict.items())
    # 初始化新字典,先插入要放在开头的新元素
    updated_dict = {0: new_item}
    # 遍历原有元素,把每个键加1后加入新字典
    for key, value in sorted_original_items:
        updated_dict[key + 1] = value
    return updated_dict

# 测试你的场景
my_dic = {0:{"food":"banana"}, 1:{"food":"apple"}, 2:{"food":"orange"}}
# 准备要添加的新元素
new_food = {"food": "grape"}
# 更新字典
my_dic = add_item_to_dict_start(my_dic, new_food)
print(my_dic)

运行后输出的结果就是你想要的:

{0: {'food': 'grape'}, 1: {'food': 'banana'}, 2: {'food': 'apple'}, 3: {'food': 'orange'}}

小补充

这里用sorted(original_dict.items())是为了稳妥——哪怕原字典的键顺序出现意外,也能保证我们按从小到大的顺序处理元素。如果你的原字典一直是按连续整数键添加的,Python 3.7+版本里直接遍历original_dict.items()也没问题,但加个sorted兼容性和稳定性更强。

每次调用这个函数,就能把新元素放在字典开头(键为0),同时让原有所有元素的键自动递增一位,完全符合你的需求~

内容的提问来源于stack exchange,提问作者user15347905

火山引擎 最新活动