def get_nested(a_dict, *args, default_value=None):
    """
    Safely gets items buried in a nested dictionary
    :param a_dict: nested dictionary to check
    :param args: the keys to navigate down
    :param default_value: if the items are not found in nested dict
    :return: Item or none
    >>> test_dict = {'a': {'b': {'c': 5}}}
    >>> get_nested(test_dict, 'a', 'b', 'c')
    5
    >>> get_nested(test_dict, 'a', 'd', default_value=10)
    10
    >>> get_nested(test_dict, 'a', 'b', 'c', 'd')
    >>> list_dict = {'a': [{}, {'b': 2}]}
    >>> get_nested(list_dict, 'a', 1, 'b')
    2
    """

    value = a_dict
    for arg in args:
        if isinstance(value, dict):
            if arg in value:
                value = value[arg]
            else:
                return default_value
        elif isinstance(value, list):
            if isinstance(arg, int):
                value = value[arg]
            else:
                return default_value
        else:
            return default_value
    return value