def split_sequence_into_dict_and_nondicts(*args):
    """Separate dict and non-dict items. Merge dicts and merge non-dicts

    Elements are combined in the order that they appear.  i.e. non-dict items
    will be appended to a combined list as they are encounterd.  Repeated dict
    keys will be overridded by the latest value.

    Parameters
    ----------
    *args : one or more positional items
        Mixture of dict and non-dict.

    Returns
    -------
    merged_non_dict : list
        List of non dictionary items.
    merged_dict : dict
        Merged dictionary.

    """
    merged_non_dict = []
    merged_dict = dict()
    for v in args:
        if isinstance(v, dict):
            merged_dict.update(v)
        else:
            merged_non_dict.append(v)
    return merged_non_dict, merged_dict
