如果有一个包含 n 个布尔值的列表,那么找出 true 连续出现在列表中的次数、连续出现两次等的最佳方法是什么?
例如:list1 = [True,False,True, True, False, False, False, True,True]
true 在一行中出现一次,在一行中出现两次。
您可以使用itertools.groupby
找到的连续出现Trues
和collections.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})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句