parameters: (n, iterable)
return_statement: return [islice(it, index, None, n) for index, it in enumerate(children)]
docstring: Distribute the items from *iterable* among *n* smaller iterables.
  
          >>> group_1, group_2 = distribute(2, [1, 2, 3, 4, 5, 6])
          >>> list(group_1)
          [1, 3, 5]
          >>> list(group_2)
          [2, 4, 6]
  
      If the length of *iterable* is not evenly divisible by *n*, then the
      length of the returned iterables will not be identical:
  
          >>> children = distribute(3, [1, 2, 3, 4, 5, 6, 7])
          >>> [list(c) for c in children]
          [[1, 4, 7], [2, 5], [3, 6]]
  
      If the length of *iterable* is smaller than *n*, then the last returned
      iterables will be empty:
  
          >>> children = distribute(5, [1, 2, 3])
          >>> [list(c) for c in children]
          [[1], [2], [3], [], []]
  
      This function uses :func:`itertools.tee` and may require significant
      storage. If you need the order items in the smaller iterables to match the
      original iterable, see :func:`divide`.
docstring_summary: Distribute the items from *iterable* among *n* smaller iterables.
docstring_tokens: Distribute the items from * iterable * among * n * smaller iterables .
function: def distribute(n, iterable):
      """Distribute the items from *iterable* among *n* smaller iterables.
  
          >>> group_1, group_2 = distribute(2, [1, 2, 3, 4, 5, 6])
          >>> list(group_1)
          [1, 3, 5]
          >>> list(group_2)
          [2, 4, 6]
  
      If the length of *iterable* is not evenly divisible by *n*, then the
      length of the returned iterables will not be identical:
  
          >>> children = distribute(3, [1, 2, 3, 4, 5, 6, 7])
          >>> [list(c) for c in children]
          [[1, 4, 7], [2, 5], [3, 6]]
  
      If the length of *iterable* is smaller than *n*, then the last returned
      iterables will be empty:
  
          >>> children = distribute(5, [1, 2, 3])
          >>> [list(c) for c in children]
          [[1], [2], [3], [], []]
  
      This function uses :func:`itertools.tee` and may require significant
      storage. If you need the order items in the smaller iterables to match the
      original iterable, see :func:`divide`.
  
      """
      if n < 1:
          raise ValueError('n must be at least 1')
  
      children = tee(iterable, n)
      return [islice(it, index, None, n) for index, it in enumerate(children)]
function_tokens: def distribute ( n , iterable ) : if n < 1 : raise ValueError ( 'n must be at least 1' ) children = tee ( iterable , n ) return [ islice ( it , index , None , n ) for index , it in enumerate ( children ) ]