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

如何统计数值列表中的连续数对数量,现有代码错误该如何修正

错误原因
  • 错误1:遍历到长度为1的连续分组时,直接将计数变量i重置为0,会清空之前所有分组的计数结果。比如示例中最后一个分组[262]长度为1,直接把之前累加的2重置为0,最终输出结果错误。
  • 错误2:硬编码了分组长度对应的增量逻辑,只适配了长度1、2、3的分组,一旦出现更长的连续序列(比如长度为4的连续数,对应3个连续对)就无法正确统计,逻辑通用性极差。
  • 额外冗余:代码中导入了itertools但全程未使用,属于无效导入。
修正方案

对于任意长度为n的连续分组,其包含的连续相邻数对数量固定为n-1,直接累加该值即可,不需要做长度分支判断,也不能随意重置计数变量。

修正后代码如下:

import more_itertools as mit

iterable = [150,151,152,262]
count = 0
for group in mit.consecutive_groups(iterable):
    count += len(list(group)) - 1
print(count)

如果需要更简洁的写法,也可以用生成器表达式直接求和:

import more_itertools as mit

iterable = [150,151,152,262]
count = sum(len(list(g)) - 1 for g in mit.consecutive_groups(iterable))
print(count)

以上代码运行输出为2,符合预期统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:15:07