I have a list like this
[0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1]
and I want to group them, and then find the length of each group. So, the result will be like this:
[[2,0],[3,1].....[4,1]]
Use itertools.groupby :
itertools.groupby
>>> import itertools >>> l = [0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1] >>> [(len(list(g)), k) for k,g in itertools.groupby(l)] [(2, 0), (3, 1), (3, 0), (2, 1), (2, 0), (4, 1)]
In [7]: import itertools In [8]: [[sum(1 for _ in g),v] for v,g in itertools.groupby(l)] Out[8]: [[2, 0], [3, 1], [3, 0], [2, 1], [2, 0], [4, 1]]
Where l is your input list.
l