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

Python实现提取列表内所有5位数值区间分组及代码排错

问题排查

错误原因

  • 原代码仅将输入列表中存在的数值作为长度为5的区间左端点遍历,漏掉了左端点不存在于输入列表、但区间内包含输入元素的情况,比如区间左端点为3、4、5、6时的分组都被遗漏,导致最终结果缺失了[7]、[7,8]、[7,8,9]、[7,8,9,10]这几项。

正确实现代码

table = [1,7,8,9,10,11,19]
# 转集合加速存在性查询
card_set = set(table)
result = []
# 遍历所有可能的区间左端点,范围覆盖输入的最小值到最大值
for start in range(min(table), max(table)+1):
    # 长度为5的闭区间范围是[start, start+4]
    current_group = sorted([num for num in card_set if start <= num <= start+4])
    # 仅保留非空分组
    if current_group:
        result.append(current_group)

print(result)

运行输出

[[1], [7], [7, 8], [7, 8, 9], [7, 8, 9, 10], [7, 8, 9, 10, 11], [8, 9, 10, 11], [9, 10, 11], [10, 11], [11], [19]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:06:02