def dict_of_lists_to_list_of_dicts(dictionary_of_lists):
    """
        Takes a dictionary of lists and creates a list of dictionaries.
        If the lists are of unequal length, the remaining entries are set to `None`.

        Shorthand: `litus.dl2ld(..)`:

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

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

    """
    return [{key: dictionary_of_lists[key][index] if len(dictionary_of_lists[key]) > index else None for key in dictionary_of_lists.keys()}
         for index in range(max(map(len,dictionary_of_lists.values())))]