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

如何检查列表内各字典的id参数值是否连续并修复相关报错

错误原因

循环中拿到的item是列表里的单个字典对象,你对字典执行item[-1]是尝试读取字典中key为-1的值,而你的字典不存在该key,因此抛出KeyError。你实际需要获取的是列表中当前元素的上一个元素,需要基于列表索引取值。

实现方案

方案1:按索引遍历(易理解)

支持任意长度的列表,空列表、单元素列表默认判定为连续,出现不连续id立即终止遍历,性能优异。

listing = [
    {
        'id': 1,
        'stuff': "othervalues"
    },
    {
        'id': 2,
        'stuff': "othervalues"
    },
    {
        'id': 3,
        'stuff': "othervalues"
    }
]

is_continuous = True
# 从第二个元素开始遍历,和前一个元素对比
for i in range(1, len(listing)):
    if listing[i]['id'] != listing[i-1]['id'] + 1:
        is_continuous = False
        break

print(is_continuous)

方案2:zip配对(写法精简)

和方案1逻辑完全一致,用内置函数简化代码:

is_continuous = all(cur['id'] == prev['id'] + 1 for prev, cur in zip(listing, listing[1:]))
print(is_continuous)

内容的提问来源于stack exchange,提问作者Samuel Antunes Vieira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:48:04