code: def chunk_list(list_, size):
      
      ll = len(list_)
      if ll <= size:
          return [list_]
      elif size == 0:
          return list_ # or None ??
      elif size == 1:
          return [[l] for l in list_]
      else:
          chunks = []
          for start, stop in zip(range(0, ll, size), range(size, ll, size)):
              chunks.append(list_[start:stop])
          chunks.append(list_[stop:])  # snag unaligned chunks from last stop
          return chunks
docs: Split a list list_ into sublists of length size.
          NOTE: len(chunks[-1]) <= size.