Is there an easier way to break a list into sub groups

MetalOne jcb at iteris.com
Sun Feb 22 05:13:01 CET 2004


The following does what I want, but I feel like this could maybe be a
one liner.
I just can't think of anything shorter.
If there is nothing shorter, does this seem like a candidate for
inclusion in the standard library somewhere.

>>> def groups(l, n):
      """l is an input list.
         n is the size of the sub group
         returns a list of the sub groups
      """
...   i=0
...   g = []
...   while i < len(l):
...     g.append(l[i:i+n])  #append sub group to g
...     i+=n
...   return g
...
>>> l = [1,2,3,4,5,6]
>>> groups(l,2)
[[1, 2], [3, 4], [5, 6]]
>>> groups(l,3)
[[1, 2, 3], [4, 5, 6]]
>>> groups(l,4)
[[1, 2, 3, 4], [5, 6]]



More information about the Python-list mailing list