code: def get_return_elements(return_columns, namespace, subscript_dict):
      
      capture_elements = list()
      return_addresses = dict()
      for col in return_columns:
          if '[' in col:
              name, location = col.strip(']').split('[')
              subs = [l.strip() for l in location.split(',')]
              address = make_coord_dict(subs, subscript_dict)
          else:
              name = col
              address = {}
          
          if name in namespace:
              py_name = namespace[name]
          else:
              if name in namespace.values():
                  py_name = name
              else:
                  raise KeyError(name + " not found as model element")
          
          if py_name not in capture_elements:
              capture_elements += [py_name]
  
          return_addresses[col] = (py_name, address)
              
      return list(capture_elements), return_addresses
docs: Takes a list of return elements formatted in vensim's format
      Varname[Sub1, SUb2]
      and returns first the model elements (in python safe language)
      that need to be computed and collected, and secondly the addresses
      that each element in the return columns list translates to
  
      Parameters
      ----------
      return_columns: list of strings
      namespace
      subscript_dict
  
      Returns
      -------
      capture_elements
      return_addresses
  
      Examples
      --------