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

如何实现连续整数分组?附相关Python代码片段

连续整数分组的Python实现方案

嘿,我来帮你搞定这个连续整数分组的问题!原代码的逻辑有点绕,还存在索引越界的隐藏bug,而且用字典存储分组的方式效率不高、容易出错。我给你一个更清晰可靠的实现方案,一步步帮你实现需求:

完整实现代码

ints = [1,2,3,4,5,6,8,9,10,11,14,34,14,35,16,18,39,10,29,30,14,26,64,27,48,65]

# 第一步:去重并排序,确保整数按从小到大排列且无重复
unique_sorted_ints = sorted(set(ints))

# 第二步:初始化分组列表,用于存储最终的连续整数组
groups = []

# 第三步:遍历处理每个整数,完成分组
for num in unique_sorted_ints:
    # 如果还没有分组,或者当前数和最后一组的最后一个数不连续,就新建一个组
    if not groups or num != groups[-1][-1] + 1:
        groups.append([num])
    else:
        # 如果连续,就把当前数加入最后一个组
        groups[-1].append(num)

# 输出分组结果
print("连续整数分组结果:")
for group in groups:
    print(group)

代码解释

  • 去重排序:用sorted(set(ints))一步完成去重和排序,比先排序再转集合更高效——集合自动去重,排序保证整数按从小到大的顺序排列。
  • 分组逻辑:
    • 用列表groups存储所有连续整数组,结构简单直观
    • 遍历每个整数时,只需要和最后一组的末尾元素对比:
      • 如果不连续(或者还没开始分组),就新建一个组
      • 如果连续,直接追加到最后一组末尾,避免了原代码中遍历字典的冗余操作

运行结果

执行代码后,会输出以下分组:

[1, 2, 3, 4, 5, 6]
[8, 9, 10, 11]
[14]
[16]
[18]
[26, 27]
[29, 30]
[34, 35]
[39]
[48]
[64, 65]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:57:14