from functools import reduce


def merge_dicts(dict_list, default_dict=None):
    """
    Creates a new dict representing the merger of all dicts in dict_list.
    If default_dict is given, add keys to default_dict.
    """
    if not default_dict:
        return reduce(lambda a, b: a.update(b) or a, dict_list)
    else:
        for d in dict_list:
            default_dict.update(d)
        return default_dict