Bird
Raised Fist0
Pythonprogramming~5 mins

filter() function in Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the filter() function do in Python?
The filter() function takes a function and a sequence (like a list) and returns a new sequence with only the items for which the function returns True.
Click to reveal answer
beginner
How do you use filter() with a lambda function to keep only even numbers from a list?
You write:
filter(lambda x: x % 2 == 0, my_list)
This keeps only numbers divisible by 2 (even numbers).
Click to reveal answer
intermediate
What type of object does filter() return in Python 3?
It returns a filter object, which is an iterator. You can convert it to a list using list() to see the filtered items.
Click to reveal answer
intermediate
What happens if the function passed to filter() is None?
If the function is None, filter() removes all items that are false in a Boolean context (like False, 0, '', None).
Click to reveal answer
beginner
Can filter() be used with any iterable, or only lists?
filter() works with any iterable, such as lists, tuples, sets, or even strings.
Click to reveal answer
What does filter() return in Python 3?
AA dictionary
BA list
CA tuple
DA filter object (an iterator)
What happens if you pass None as the function to filter()?
AIt returns the original iterable unchanged
BIt raises an error
CIt filters out all false values from the iterable
DIt returns an empty list
Which of these is a correct way to use filter() to keep only positive numbers from a list nums?
Afilter(lambda x: x > 0, nums)
Bfilter(lambda x: x < 0, nums)
Cfilter(lambda x: x == 0, nums)
Dfilter(lambda x: x != 0, nums)
How can you see the filtered results from filter()?
APrint the filter object directly
BConvert the filter object to a list using <code>list()</code>
CUse <code>str()</code> on the filter object
DUse <code>dict()</code> on the filter object
Can filter() be used on a string?
AYes, because strings are iterable
BNo, strings are not iterable
COnly if converted to a list first
DOnly with a special function
Explain how the filter() function works and give an example using a lambda function to filter even numbers.
Think about how you pick only certain items from a list based on a test.
You got /5 concepts.
    What happens when you pass None as the function to filter()? Why might this be useful?
    Consider what values are treated as false in Python.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the filter() function do in Python?
      easy
      A. Sorts the items in a list
      B. Changes all items in a list to uppercase
      C. Selects items from a list that meet a condition
      D. Adds all items in a list together

      Solution

      1. Step 1: Understand the purpose of filter()

        The filter() function takes a function and a list, then keeps only items where the function returns True.
      2. Step 2: Compare options with the purpose

        Only Selects items from a list that meet a condition describes selecting items based on a condition, which matches filter()'s job.
      3. Final Answer:

        Selects items from a list that meet a condition -> Option C
      4. Quick Check:

        filter() selects items [OK]
      Hint: Remember: filter keeps items passing the test [OK]
      Common Mistakes:
      • Thinking filter changes items instead of selecting
      • Confusing filter with map or sort
      • Assuming filter adds or combines items
      2. Which of these is the correct syntax to use filter() to keep even numbers from a list nums?
      easy
      A. filter(lambda x: x % 2 == 0, nums)
      B. filter(nums, lambda x: x % 2 == 0)
      C. filter(x % 2 == 0, nums)
      D. filter(lambda x: nums % 2 == 0)

      Solution

      1. Step 1: Recall filter() syntax

        The correct syntax is filter(function, iterable), where function tests each item.
      2. Step 2: Check each option

        filter(lambda x: x % 2 == 0, nums) uses lambda x: x % 2 == 0 as function and nums as iterable, which is correct.
      3. Final Answer:

        filter(lambda x: x % 2 == 0, nums) -> Option A
      4. Quick Check:

        filter(function, iterable) correct order [OK]
      Hint: filter(function, iterable) order matters [OK]
      Common Mistakes:
      • Swapping function and iterable arguments
      • Using expression instead of function
      • Missing lambda or function for filtering
      3. What is the output of this code?
      nums = [1, 2, 3, 4, 5]
      even_nums = list(filter(lambda x: x % 2 == 0, nums))
      print(even_nums)
      medium
      A. [1, 3, 5]
      B. [2, 4]
      C. [1, 2, 3, 4, 5]
      D. []

      Solution

      1. Step 1: Understand the filter condition

        The lambda function keeps numbers where x % 2 == 0, meaning even numbers.
      2. Step 2: Apply filter to the list

        From [1, 2, 3, 4, 5], only 2 and 4 are even, so the filtered list is [2, 4].
      3. Final Answer:

        [2, 4] -> Option B
      4. Quick Check:

        Filter keeps even numbers [OK]
      Hint: Filter keeps items where function returns True [OK]
      Common Mistakes:
      • Confusing even and odd numbers
      • Forgetting to convert filter to list
      • Expecting original list unchanged
      4. Find the error in this code snippet:
      nums = [10, 15, 20]
      result = filter(x % 10 == 0, nums)
      print(list(result))
      medium
      A. Wrong variable name 'nums'
      B. No error, code runs fine
      C. filter() cannot be converted to list
      D. Missing lambda function for filter

      Solution

      1. Step 1: Check filter function argument

        The first argument to filter() must be a function, but x % 10 == 0 is an expression, not a function.
      2. Step 2: Identify fix

        We need to wrap the expression in a lambda: lambda x: x % 10 == 0 to make it a function.
      3. Final Answer:

        Missing lambda function for filter -> Option D
      4. Quick Check:

        filter needs a function as first argument [OK]
      Hint: filter needs a function, use lambda for expressions [OK]
      Common Mistakes:
      • Passing expression instead of function
      • Assuming filter returns list directly
      • Ignoring syntax errors in lambda usage
      5. You have a list of words: words = ['apple', '', 'banana', None, 'cherry', '']. Which code correctly filters out empty strings and None values using filter()?
      hard
      A. list(filter(lambda w: w, words))
      B. list(filter(lambda w: w == '', words))
      C. list(filter(lambda w: w is None, words))
      D. list(filter(lambda w: w != None or w != '', words))

      Solution

      1. Step 1: Understand filtering out empty and None

        Empty strings and None are 'falsy' in Python, so lambda w: w keeps only truthy values.
      2. Step 2: Check each option

        list(filter(lambda w: w, words)) keeps only truthy values, removing empty strings and None. Options B and C keep only empty or None, which is opposite. list(filter(lambda w: w != None or w != '', words)) uses wrong logic and keeps all.
      3. Final Answer:

        list(filter(lambda w: w, words)) -> Option A
      4. Quick Check:

        filter with lambda w: w removes falsy values [OK]
      Hint: Use lambda x: x to remove falsy values [OK]
      Common Mistakes:
      • Using wrong condition to keep empty or None
      • Using 'or' instead of 'and' in condition
      • Expecting filter to remove without function