Sums the given dicts into a single dict mapping each numberic-valued
    key to the sum of its mappings in all given dicts. Keys mapping to
    non-numeric values retain the last value (by the given order).

    Parameters
    ----------
    dicts : list
        A list of dict objects mapping each key to an numeric value.
    normalize : bool, default False
        Indicated whether to normalize all values by value sum.

    Returns
    -------
    dict
        A dict where each key is mapped to the sum of its mappings in all
        given dicts.

def sum_dicts(dicts, normalize=False):
    """Sums the given dicts into a single dict mapping each numberic-valued
    key to the sum of its mappings in all given dicts. Keys mapping to
    non-numeric values retain the last value (by the given order).

    Parameters
    ----------
    dicts : list
        A list of dict objects mapping each key to an numeric value.
    normalize : bool, default False
        Indicated whether to normalize all values by value sum.

    Returns
    -------
    dict
        A dict where each key is mapped to the sum of its mappings in all
        given dicts.
    """
    sum_dict = {}
    for dicti in dicts:
        for key in dicti:
            val = dicti[key]
            if isinstance(val, numbers.Number):
                sum_dict[key] = sum_dict.get(key, 0) + val
            else:
                sum_dict[key] = val
    if normalize:
        return norm_int_dict(sum_dict)
    return sum_dict