You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python字典的键重置为从1开始的连续升序整数

实现代码

你可以通过对原字典的键升序排序后重新生成新字典实现,Python 3.7及以上版本(字典默认保留插入顺序)可直接使用以下代码:

project = {
    5: {"name:Mark"},
    1: {"name:Mark"},
    3: {"name:Mark"},
    4: {"name:Kim"},
    2: {"name:Kim"},
}

# 核心逻辑:按原键升序排列后,生成新的连续键字典
project = {idx: val for idx, (_, val) in enumerate(sorted(project.items()), start=1)}
逻辑说明
  • 首先调用sorted(project.items()),默认会按键的升序对原字典的所有键值对排序,得到的顺序就是你需要保留的取值顺序
  • 用enumerate(..., start=1)遍历排序后的键值对,直接把从1开始的索引作为新字典的键,原键值对的value作为新字典的值,最终得到的就是符合要求的结果
结果验证

执行后打印project即可得到目标结构:

{
    1: {'name:Mark'},
    2: {'name:Mark'},
    3: {'name:Mark'},
    4: {'name:Kim'},
    5: {'name:Kim'}
}

如果你使用的是Python 3.7以下的版本,需要导入collections.OrderedDict来保证顺序,代码如下:

from collections import OrderedDict

project = OrderedDict(
    (idx, val) for idx, (_, val) in enumerate(sorted(project.items()), start=1)
)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:01