將連續元素分組,然後找出出現次數最多的。
from itertools import groupby
from collections import Counter
from pprint import pprint
def getContinuousItemsCount(l):
x = [tuple(g) for k, g in groupby(l)]
tupleCounter = Counter(x)
s = set(x)
d = {}
for t in s:
d[t] = tupleCounter[t]
return d
pprint(getContinuousItemsCount(
['A', 'B', 'A', 'A', 'B', 'A', 'A', 'A', 'B', 'A']))
pprint(getContinuousItemsCount(
['H', 'T', 'H', 'H', 'T', 'T', 'T', 'T', 'T', 'H']))
pprint(getContinuousItemsCount(
['H', 'H', 'H', 'H', 'H', 'T', 'H', 'T', 'H', 'H']))
pprint(getContinuousItemsCount(
['H', 'T', 'T', 'T', 'H', 'H', 'H', 'H', 'T', 'T']))