I'm looking for a magical Python method to pack a list of indexes of this type
[0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4]
with each index grouped in a specific list:
[[0, 1, 2, 3, 4], [5, 6, 7], [8, 9], [10], [11, 12, 13]]
I already did this with list comprehension plus the append loop as follows, but I feel there is a one-line Python that can do this. I work on lists that sometimes reach 10,000+ items, so performance is important.
li = [0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 4]
result = [[] for _ in xrange(max(li)+1)]
for i in xrange(len(li)):
result[li[i]].append(i)