code: def regroup(target, expression):
      if not target: return ''
      return [
          {'grouper': key, 'list': list(val)}
          for key, val in
          groupby(obj_list, lambda v, f=expression.resolve: f(v, True))
      ]