Merging values with lists as flat-lists
Merging many dictionaries

Instead of merging just 2 dictionaries, how about allowing to merge many?

def merge_dlist(*args):
    """Merge_dlist accepts dictionaries to be merged."""
    merged_dict = defaultdict(list)
    for dictionary in args:
        merged_dict = merge_type(dictionary, merged_dict)
    return merged_dict


Improving merge_type like this:

def merge_dictionary(dictionary, merged):
    """Merge dictionary keys. Append value items to value list."""
    for key, value in dictionary.items():
        if isinstance(value, list):
            merged[key].extend(value)
        else:
            merged[key].append(value)
    return merged


Improvements:


Naming: "merge_type" is a strange name, I don't know what it means. I think "merge_dictionary" makes more sense.
Instead of appending list items one by one with .append, it's better to add all at once using .extend
Why limit to string types? Why not append any kind of non-list values in general?