【发布时间】:2021-09-21 12:42:00
【问题描述】:
如何创建一个新列表,其中包含 main_list 中 True 元素连续重复的所有 True 元素的总和?
main_list = [True, True, False, False, True, True, True, True, True, False]
预期的答案是:
true_sum = [2,5]
#first repeating True segment starts at index 0 and contains 2 elements from main_list and the second repeating segment starts at index 4 from main_list and contains 5 True elements.
我需要一个不需要使用 numpy 或 groupby 的简单代码。
我尝试将 main_list 划分为子列表,首先包含重复 True 元素的组,但在不使用 numpy 或 groupby 的情况下也很困难。
这是我尝试过但对我不起作用的方法:
true_sum = [sum(1 for i in main_list if i==True)]
【问题讨论】:
-
您是否尝试过使用
enumerate遍历列表?这样,您也可以处理索引。 -
from collections import Counter? -
好的,这个网站上有一个问题是完全相同的,只是没有包含任何尝试(因为你在这里尝试了一些东西是链接(它也包含答案)):@ 987654322@ 或者至少是相似的(太相似了)
-
@Sujay 不幸的是,不,因为我需要每个重复 True 段的总和