Sums the given dicts into a single dict mapping each key to the sum
    of its mappings in all given dicts.

    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.

    Example
    -------
    >>> dict1 = {'a': 3, 'b': 2}
    >>> dict2 = {'a':7, 'c': 8}
    >>> result = sum_num_dicts([dict1, dict2])
    >>> print(sorted(result.items()))
    [('a', 10), ('b', 2), ('c', 8)]
    >>> result = sum_num_dicts([dict1, dict2], normalize=True)
    >>> print(sorted(result.items()))
    [('a', 0.5), ('b', 0.1), ('c', 0.4)]

def sum_num_dicts(dicts, normalize=False):
    """Sums the given dicts into a single dict mapping each key to the sum
    of its mappings in all given dicts.

    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.

    Example
    -------
    >>> dict1 = {'a': 3, 'b': 2}
    >>> dict2 = {'a':7, 'c': 8}
    >>> result = sum_num_dicts([dict1, dict2])
    >>> print(sorted(result.items()))
    [('a', 10), ('b', 2), ('c', 8)]
    >>> result = sum_num_dicts([dict1, dict2], normalize=True)
    >>> print(sorted(result.items()))
    [('a', 0.5), ('b', 0.1), ('c', 0.4)]
    """
    sum_dict = {}
    for dicti in dicts:
        for key in dicti:
            sum_dict[key] = sum_dict.get(key, 0) + dicti[key]
    if normalize:
        return norm_int_dict(sum_dict)
    return sum_dict