连续计算出现次数

时间:2019-05-11 16:34:11

标签: python

如果a有一个由n个布尔值组成的列表,那么查找列表中连续出现一次,连续出现两次等等的最佳方式是什么?

例如: list1 = [True,False,True,True,False,False,False,True,True]

true连续出现一次,连续两次出现两次。

1 个答案:

答案 0 :(得分:3)

您可以使用itertools.groupby查找连续出现的Truescollections.Counter

让我们尝试以下列表:

from itertools import groupby
from collections import Counter

l = [True, False, True, True, True, True, False, True]
Counter(sum(v) for k,v in groupby(l) if k)
# Counter({1: 2, 4: 1})
相关问题