def two_list_dictionary(keys, values):
    """Given keys and values, make dictionary of those.
    
        >>> two_list_dictionary(['x', 'y', 'z'], [9, 8, 7])
        {'x': 9, 'y': 8, 'z': 7}
        
    If there are fewer values than keys, remaining keys should have value
    of None:
    
        >>> two_list_dictionary(['a', 'b', 'c', 'd'], [1, 2, 3])
        {'a': 1, 'b': 2, 'c': 3, 'd': None}
    
    If there are fewer keys, ignore remaining values:

        >>> two_list_dictionary(['a', 'b', 'c'], [1, 2, 3, 4])
        {'a': 1, 'b': 2, 'c': 3}
    """
    nv = len(values)
    # nk = len(keys)
    d = {}

    # if nv < nk:
    #     for i, k in enumerate(keys):
    #         if i < nv:
    #             d[k] = values[i]
    #         else:
    #             d[k] = None
    # # else nk < nv:
    # #     for i, k in enumerate(keys):
    # #         d[k] = values[i]
    # else:
    #     for i, k in enumerate(keys):
    #         d[k] = values[i]

    for i, k in enumerate(keys):
        if i < nv:
            d[k] = values[i]
        else:
            d[k] = None

    return d
