Takes a list of dictionaries and creates a dictionary with the combined values for 
        each key in each dicitonary.
        Missing values are set to `None` for each dicitonary that does not contain a key 
        that is present in at least one other dicitonary.

            >>> litus.list_of_dicts_to_dict_of_lists([{'a':1,'b':2,'c':3},{'a':3,'b':4,'c':5},{'a':1,'b':2,'c':3}])

            {'a': [1, 3, 1], 'b': [2, 4, 2], 'c': [3, 5, 3]}

        Shorthand: `litus.ld2dl(..)`

def list_of_dicts_to_dict_of_lists(list_of_dictionaries):
    """
        Takes a list of dictionaries and creates a dictionary with the combined values for 
        each key in each dicitonary.
        Missing values are set to `None` for each dicitonary that does not contain a key 
        that is present in at least one other dicitonary.

            >>> litus.list_of_dicts_to_dict_of_lists([{'a':1,'b':2,'c':3},{'a':3,'b':4,'c':5},{'a':1,'b':2,'c':3}])

            {'a': [1, 3, 1], 'b': [2, 4, 2], 'c': [3, 5, 3]}

        Shorthand: `litus.ld2dl(..)`
    """
    result = {}
    all_keys = set([k for d in  list_of_dictionaries for k in d.keys()])
    for d in list_of_dictionaries:
        for k in all_keys:
            result.setdefault(k,[]).append(d.get(k,None))
    return result