def nested_contains(L, value):
    """
    Return whether L, or any nested sub-list of list_ contains value.

    @param list L: list to search
    @param object value: non-list value to search for
    @rtype: bool

    >>> list_ = ["how", ["now", "brown"], 1]
    >>> nested_contains(list_, "brown")
    True
    >>> nested_contains([], 5)
    False
    >>> nested_contains([5], 5)
    True
    """

    # since nested_contains returns a bool
    # and the == evaluates to a bool
    # this is a list of bools
    return any([nested_contains(x, value)
                    if isinstance(x, list)
                    else x == value
                    for x in L])