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

Python实现遇1重置的循环内元素出现次数计数方法

实现方案

你可以用单次遍历的生成器写法实现,逻辑清晰同时符合Pythonic风格,性能也足够好:

list_sequences = [1, 2, 3, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3, 2, 3, 2, 3, 1]

def count_occurrences(seq):
    count_1 = 0
    count_2 = count_3 = 0
    for num in seq:
        if num == 1:
            count_1 += 1
            count_2 = count_3 = 0
            yield count_1
        elif num == 2:
            count_2 += 1
            yield count_2
        elif num == 3:
            count_3 += 1
            yield count_3

occurrence_list = list(count_occurrences(list_sequences))
print(occurrence_list)
# 输出:[1, 1, 1, 2, 2, 2, 1, 1, 3, 1, 1, 2, 2, 3, 3, 4, 4, 4]

逻辑说明

  • 维护三个计数器:count_1用来累计1的总出现次数,count_2和count_3用来统计上一次遇到1之后,2和3各自的出现次数
  • 遍历原列表每一个元素:
    • 遇到1时,count_1自增1,同时重置2和3的计数器,返回当前count_1的值
    • 遇到2时,count_2自增1,返回当前count_2的值
    • 遇到3时,count_3自增1,返回当前count_3的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:33:00