Bird
Raised Fist0
Pythonprogramming~15 mins

Lambda with filter() in Python - Mini Project: Build & Apply

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
Filter Even Numbers Using Lambda
๐Ÿ“– Scenario: Imagine you have a list of numbers representing daily sales counts. You want to find only the even sales numbers to analyze patterns.
๐ŸŽฏ Goal: Build a small program that uses a lambda function with filter() to select even numbers from a list.
๐Ÿ“‹ What You'll Learn
Create a list called sales with exact numbers: 12, 7, 9, 20, 15, 8
Create a lambda function inside filter() to select even numbers
Store the filtered result as a list called even_sales
Print the even_sales list
๐Ÿ’ก Why This Matters
๐ŸŒ Real World
Filtering data like sales numbers helps businesses focus on specific patterns, such as even or odd counts, which can be important for inventory or promotions.
๐Ÿ’ผ Career
Understanding how to use lambda with filter() is useful for data cleaning and processing tasks common in data analysis and software development.
Progress0 / 4 steps
1
Create the sales list
Create a list called sales with these exact numbers: 12, 7, 9, 20, 15, 8.
Python
Hint

Use square brackets [] to create the list and separate numbers with commas.

2
Prepare to filter even numbers
Create a variable called even_sales and assign it the result of filter() using a lambda function that checks if a number is even (divisible by 2) applied to the sales list.
Python
Hint

The lambda function should take one argument and return True if the number is even.

3
Convert filter object to list
Convert the filter object even_sales to a list by wrapping it with list() and reassign it back to even_sales.
Python
Hint

Use list() to turn the filter result into a list you can print.

4
Print the even sales list
Print the even_sales list to display the filtered even numbers.
Python
Hint

Use print(even_sales) to show the result.

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