code: def chunks(it, n):
      
      for first in it:
          yield [first] + list(itertools.islice(it, n - 1))
docs: Split an iterator into chunks with `n` elements each.
      Examples
          # n == 2
          >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2)
          >>> list(x)
          [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]
          # n == 3
          >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3)
          >>> list(x)
          [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]]