code: def zip_nested(arg0, *args, **kwargs):
    
    # Python 2 do not support kwargs only arguments
    dict_only = kwargs.pop("dict_only", False)
    assert not kwargs
  
    # Could add support for more exotic data_struct, like OrderedDict
    if isinstance(arg0, dict):
      return {
          k: zip_nested(*a, dict_only=dict_only) for k, a in zip_dict(arg0, *args)
      }
    elif not dict_only:
      if isinstance(arg0, list):
        return [zip_nested(*a, dict_only=dict_only) for a in zip(arg0, *args)]
    # Singleton
    return (arg0,) + args
docs: Zip data struct together and return a data struct with the same shape.