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

不使用numpy/groupby统计Python列表中连续True段的元素个数

实现方案

仅需一次遍历列表即可完成统计,无需引入任何第三方库,时间复杂度为O(n),仅占用极小的临时变量空间。

完整可运行代码

main_list = [True, True, False, False, True, True, True, True, True, False]

current_count = 0
true_sum = []

for val in main_list:
    if val:
        current_count += 1
    else:
        if current_count:
            true_sum.append(current_count)
            current_count = 0
# 处理列表末尾为True的边界情况,避免遗漏最后一段连续True
if current_count:
    true_sum.append(current_count)

print(true_sum) # 输出:[2, 5]

代码说明

  • 遍历过程中遇到True就给当前连续计数加1
  • 遇到False时如果当前存在有效连续计数,就将计数存入结果列表,同时重置当前计数
  • 遍历结束后额外做一次计数判断,覆盖列表末尾是连续True的特殊场景

常见错误说明

你之前编写的true_sum = [sum(1 for i in main_list if i==True)]会统计列表中所有True的总数量,不会拆分连续段,因此只会得到[7],不符合分段统计的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:39:01