4.2.2 Filter
my_filter
takes in a predicate function pred
and a sequence seq
and returns a list containing all elements in seq
for which pred
returns True. (A predicate function is a function that takes in an argument and returns either True
or False
.)
Use only a single line for the body of the function. (Hint: use a list comprehension.)
def my_filter(pred, seq):
"""Keeps elements in seq only if they satisfy pred.
>>> my_filter(lambda x: x % 2 == 0, [1, 2, 3, 4]) # new list has only even-valued elements
[2, 4]
>>> my_filter(lambda x: (x + 5) % 3 == 0, [1, 2, 3, 4, 5])
[1, 4]
>>> my_filter(lambda x: print(x), [1, 2, 3, 4, 5])
1
2
3
4
5
[]
>>> my_filter(lambda x: max(5, x) == 5, [1, 2, 3, 4, 5, 6, 7])
[1, 2, 3, 4, 5]
"""
"*** YOUR CODE HERE ***"