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 with:
tmpL = [(i,l.count(i)) for i in l]
tmpS = set()
cntList = [x for x in tmpL if x not in tmpS and not tmpS.add(x)]
But is there a better way? I have seen the link here, but it sorts the counts and hence breaks the order.
Edit: performance is not an issue for the solution, preferable something built-in.