Bird
Raised Fist0
Pythonprogramming~5 mins

Lambda with filter() 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 is a lambda function in Python?
A lambda function is a small anonymous function defined with the keyword lambda. It can take any number of arguments but has only one expression, which is returned.
Click to reveal answer
beginner
What does the filter() function do in Python?
filter() takes a function and a list (or any iterable) and returns a new iterator with only the items for which the function returns True.
Click to reveal answer
beginner
How do you combine lambda and filter() to get even numbers from a list?
Use filter() with a lambda that checks if a number is even:
filter(lambda x: x % 2 == 0, numbers)
Click to reveal answer
intermediate
What type of object does filter() return in Python 3?
filter() returns an iterator, which can be converted to a list using list().
Click to reveal answer
intermediate
Why use lambda with filter() instead of a named function?
Using lambda keeps the code short and readable when the filtering logic is simple and used only once.
Click to reveal answer
What does this code return?
list(filter(lambda x: x > 3, [1, 4, 2, 5]))
A[1, 2]
B[4, 5]
C[1, 4, 2, 5]
D[3, 4, 5]
Which of these is a correct use of filter() with a lambda to get odd numbers?
Afilter(lambda x: x % 2 == 1, numbers)
Bfilter(lambda x: x % 2 == 0, numbers)
Cfilter(lambda x: x > 2, numbers)
Dfilter(lambda x: x < 0, numbers)
What type of argument does filter() expect as its first parameter?
AA number
BA list
CA string
DA function that returns True or False
What will list(filter(lambda x: x, [0, 1, '', 'hello'])) return?
A[1, 'hello']
B[0, 1]
C[0, '', 'hello']
D[]
Why might you convert the result of filter() to a list?
ABecause <code>filter()</code> returns a dictionary
BBecause <code>filter()</code> returns a string
CBecause <code>filter()</code> returns an iterator, and lists are easier to use and print
DBecause <code>filter()</code> returns a number
Explain how to use a lambda function with filter() to select items from a list.
Think about how lambda defines a small function and filter uses it to keep certain items.
You got /3 concepts.
    Describe the difference between the output of filter() in Python 2 and Python 3.
    Consider what you get directly from filter() and how you can use it.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the following code do?
      filter(lambda x: x > 5, [2, 7, 4, 10])
      easy
      A. Selects numbers greater than 5 from the list
      B. Selects numbers less than 5 from the list
      C. Returns the sum of numbers greater than 5
      D. Sorts the list in ascending order

      Solution

      1. Step 1: Understand the lambda condition

        The lambda function checks if each number is greater than 5.
      2. Step 2: Apply filter with the lambda

        filter() keeps only numbers where the lambda returns True, so numbers > 5.
      3. Final Answer:

        Selects numbers greater than 5 from the list -> Option A
      4. Quick Check:

        filter with lambda x > 5 = select numbers > 5 [OK]
      Hint: filter + lambda picks items where condition is True [OK]
      Common Mistakes:
      • Thinking filter sums or sorts the list
      • Confusing greater than with less than
      • Assuming filter changes the original list
      2. Which of these is the correct syntax to filter even numbers from a list nums using lambda and filter?
      easy
      A. filter(lambda x: x % 2 == 0, nums)
      B. filter(lambda x: x // 2 == 0, nums)
      C. filter(lambda x: x % 2, nums)
      D. filter(lambda x: x == 2, nums)

      Solution

      1. Step 1: Identify condition for even numbers

        Even numbers have zero remainder when divided by 2, so x % 2 == 0.
      2. Step 2: Check filter syntax

        filter(lambda x: x % 2 == 0, nums) correctly filters even numbers.
      3. Final Answer:

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

        Even check = x % 2 == 0 [OK]
      Hint: Use x % 2 == 0 to check even numbers [OK]
      Common Mistakes:
      • Using floor division (//) instead of modulo (%)
      • Using x % 2 without comparison (filters odd numbers)
      • Checking equality to 2 instead of remainder zero
      3. What is the output of this code?
      nums = [1, 3, 6, 8, 11]
      result = list(filter(lambda x: x < 7, nums))
      print(result)
      medium
      A. [7, 8, 11]
      B. [6, 8, 11]
      C. [1, 3, 6, 8]
      D. [1, 3, 6]

      Solution

      1. Step 1: Understand the filter condition

        The lambda keeps numbers less than 7.
      2. Step 2: Apply condition to each list item

        1 < 7 (keep), 3 < 7 (keep), 6 < 7 (keep), 8 < 7 (no), 11 < 7 (no).
      3. Final Answer:

        [1, 3, 6] -> Option D
      4. Quick Check:

        Filter x < 7 = [1, 3, 6] [OK]
      Hint: Filter keeps items where lambda returns True [OK]
      Common Mistakes:
      • Including numbers not meeting condition
      • Confusing less than with greater than
      • Not converting filter object to list before printing
      4. Find the error in this code snippet:
      nums = [10, 15, 20]
      filtered = filter(lambda x: x % 2 = 0, nums)
      print(list(filtered))
      medium
      A. Incorrect list conversion syntax
      B. Missing parentheses after filter
      C. Using '=' instead of '==' in lambda condition
      D. Lambda function missing argument

      Solution

      1. Step 1: Check lambda condition syntax

        The condition uses '=' which is assignment, not comparison.
      2. Step 2: Correct operator usage

        It should be '==' to compare if x % 2 equals 0.
      3. Final Answer:

        Using '=' instead of '==' in lambda condition -> Option C
      4. Quick Check:

        Comparison needs '==' not '=' [OK]
      Hint: Use '==' for comparison inside lambda [OK]
      Common Mistakes:
      • Using '=' instead of '==' in conditions
      • Forgetting to convert filter result to list
      • Missing lambda argument
      5. You have a list of words: words = ['apple', '', 'banana', ' ', 'cherry', None]. Which code correctly filters out empty strings, strings with only spaces, and None values using lambda and filter?
      hard
      A. list(filter(lambda x: x == '', words))
      B. list(filter(lambda x: x and x.strip(), words))
      C. list(filter(lambda x: x is None, words))
      D. list(filter(lambda x: x.strip() == '', words))

      Solution

      1. Step 1: Understand filtering criteria

        We want to remove empty strings (''), strings with only spaces (' '), and None values.
      2. Step 2: Analyze each option

        list(filter(lambda x: x and x.strip(), words)) checks x is truthy (not None or empty) and x.strip() removes spaces; if non-empty after strip, it keeps the word.
      3. Final Answer:

        list(filter(lambda x: x and x.strip(), words)) -> Option B
      4. Quick Check:

        Filter removes empty, spaces, None with x and x.strip() [OK]
      Hint: Use x and x.strip() to remove empty/space/None [OK]
      Common Mistakes:
      • Filtering only empty strings but not spaces or None
      • Checking equality to None incorrectly
      • Calling strip() on None causing error