import itertools


def reject(iterable, conditional=None):
    """
     Returns the values in list without the elements that the truth test (predicate) passes. The opposite of filter. 

     params: iterable, conditional
        iterable -> list, sequenece, set, dictionary, generator etc
        conditional -> a lambda or function that takes one or two inputs, first is element from iterable, second is index (optional)

    Examples:
    >>> odds = _.reject([1, 2, 3, 4, 5, 6], lambda x: x % 2 == 0)
    >>> list(odds)
    >>> [1,3,5]
    """
    return itertools.filterfalse(conditional, iterable)