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
Step 1: Understand the lambda condition
The lambda function checks if each number is greater than 5.
Step 2: Apply filter with the lambda
filter() keeps only numbers where the lambda returns True, so numbers > 5.
Final Answer:
Selects numbers greater than 5 from the list -> Option A
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
Step 1: Identify condition for even numbers
Even numbers have zero remainder when divided by 2, so x % 2 == 0.
Step 2: Check filter syntax
filter(lambda x: x % 2 == 0, nums) correctly filters even numbers.
Final Answer:
filter(lambda x: x % 2 == 0, nums) -> Option A
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)
The condition uses '=' which is assignment, not comparison.
Step 2: Correct operator usage
It should be '==' to compare if x % 2 equals 0.
Final Answer:
Using '=' instead of '==' in lambda condition -> Option C
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
Step 1: Understand filtering criteria
We want to remove empty strings (''), strings with only spaces (' '), and None values.
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.
Final Answer:
list(filter(lambda x: x and x.strip(), words)) -> Option B
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