Python如何为排序后的字典列表重设id从0开始连续递增
代码问题分析
- 核心错误:你内层遍历字典键值对时,拿到的
v是id字段对应的值(本身是整数类型),调用只有字典才支持的update()方法,自然会抛出'int' object has no attribute 'update'报错。 - 冗余逻辑:不需要遍历字典的所有键值对,你已经明确每个字典都带有
id字段,直接修改外层字典的id属性即可。
正确实现方案
方案1:和你原有逻辑对齐的简化写法
counter = 0 for i in combined: i['id'] = counter counter += 1
方案2:更简洁的内置方法实现(推荐)
直接用Python内置的enumerate方法获取遍历索引,不需要手动维护计数器:
for idx, item in enumerate(combined): item['id'] = idx
因为字典是可变对象,遍历过程中修改的是原字典本身,遍历完成后combined里所有字典的id就已经是从0开始的连续值,不需要额外赋值返回。
内容的提问来源于stack exchange,提问作者kdrumz
相关产品推荐
相关产品推荐

