python count items in list and keep their order of occurrance

后端 未结 3 990
独厮守ぢ
独厮守ぢ 2021-01-19 07:48

Given: a list, such as l=[4,4,4,4,5,5,5,6,7,7,7] Todo: get the count of an element and keep their occurrence order, e.g.: [(4,4),(5,3),(6,1),(7,3)]

I could do it wit

3条回答
  •  星月不相逢
    2021-01-19 08:27

    >>> import itertools
    >>> [(k, len(list(g))) for k, g in itertools.groupby(l)]
    [(4, 4), (5, 3), (6, 1), (7, 3)]
    

    This keeps the order of the items and also allows repeated items:

    >>> l=[4,4,4,4,5,5,5,6,7,7,7,4,4,4,4,4]
    >>> [(k, len(list(g))) for k, g in itertools.groupby(l)]
    [(4, 4), (5, 3), (6, 1), (7, 3), (4, 5)]
    

提交回复
热议问题