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

Python分组递增计数:值变更时重置计数器的实现问题

解决连续分组递增计数问题

原代码问题分析

  • 每次for循环都重置j=1,导致连续相同值无法累加计数
  • 直接对B赋值(B = j)而非向列表添加元素,最终无法得到目标列表
  • while A[i] == A[i+1]会在i为最后一个元素时触发索引越界错误
  • else分支逻辑错误,未正确处理值变更时的重置逻辑

正确实现代码

A = ["Apple", "Apple", "Apple", "Orange", "Orange", "Orange", "Orange", "Orange", "Orange", "Melon", "Melon", "Peach", "Peach", "Peach", "Peach"]
B = []
if not A:
    print("列表A为空")
else:
    current_val = A[0]
    count = 1
    B.append(count)
    for val in A[1:]:
        if val == current_val:
            count += 1
        else:
            current_val = val
            count = 1
        B.append(count)

# 验证输出(可选)
for a, b in zip(A, B):
    print(f"{a}\t{b}")

输出结果

产品(A)编号(B)
Apple1
Apple2
Apple3
Orange1
Orange2
Orange3
Orange4
Orange5
Orange6
Melon1
Melon2
Peach1
Peach2
Peach3
Peach4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:57:37