I often find myself trying to do something like this: list1, list2 = filter(lambda x,y: x==y, list1, list2) Which, of course, does not work, even though it seems like a natural thing to do. What is the reason for its illegality?