code: def _create_compositional_array_(expanded_chemical_formaula_string):
      
      element_array = re.findall(
          '[A-Z][^A-Z]*',
          expanded_chemical_formaula_string)
      split_element_array = []
      for s in element_array:
          m = re.match(r"([a-zA-Z]+)([0-9\.]*)", s, re.I)
          if m:
              items = m.groups()
              if items[1] == "":
                  items = (items[0], 1)
          this_e = {"symbol": items[0], "occurances": float(items[1])}
  
          split_element_array.append(this_e)
      return split_element_array
docs: Splits an expanded chemical formula string into an array of dictionaries containing information about each element
  
      :param expanded_chemical_formaula_string: a clean (not necessarily emperical, but without any special characters) chemical formula string, as returned by _expand_formula_()
      :return: an array of dictionaries