Using map() for Element-wise Mapping in Data Science
📖 Scenario: You work in a small grocery store. You have a list of prices for some fruits. You want to apply a discount to each price to prepare for a sale.
🎯 Goal: Learn how to use the map() function to apply a discount to each price in a list.
📋 What You'll Learn
Create a list of fruit prices
Create a discount rate variable
Use map() with a function to apply the discount to each price
Print the discounted prices as a list
💡 Why This Matters
🌍 Real World
Applying discounts or taxes to prices is common in retail and e-commerce. Using <code>map()</code> helps automate this process efficiently.
💼 Career
Data analysts and scientists often need to transform data element-wise. Knowing how to use <code>map()</code> is a basic but important skill.
Progress0 / 4 steps
1
Create a list of fruit prices
Create a list called prices with these exact values: 2.5, 3.0, 4.5, 1.2, 5.0.
Data Analysis Python
Hint
Use square brackets [] to create a list and separate values with commas.
2
Create a discount rate variable
Create a variable called discount_rate and set it to 0.1 to represent a 10% discount.
Data Analysis Python
Hint
Assign the value 0.1 to the variable discount_rate.
3
Use map() to apply the discount to each price
Use map() with a lambda function to create a new list called discounted_prices. The lambda function should subtract the discount from each price using price * discount_rate.
Data Analysis Python
Hint
Use map() with a lambda that takes price and returns price - price * discount_rate. Wrap the result with list().
4
Print the discounted prices
Print the list discounted_prices to see the prices after the discount.
Data Analysis Python
Hint
Use print(discounted_prices) to display the final list.
Practice
(1/5)
1. What does the map() function do when applied to a list or a DataFrame column in Python?
easy
A. It applies a function or dictionary to each element, changing them one by one.
B. It sorts the list or column in ascending order.
C. It removes duplicate elements from the list or column.
D. It combines two lists or columns into one.
Solution
Step 1: Understand the purpose of map()
The map() function is used to apply a transformation to each element of a list or column.
Step 2: Identify what map() changes
It changes each element individually using a function or dictionary mapping.
Final Answer:
It applies a function or dictionary to each element, changing them one by one. -> Option A
Quick Check:
map() changes elements [OK]
Hint: Remember: map changes each item individually [OK]
Common Mistakes:
Thinking map sorts data
Confusing map with removing duplicates
Assuming map merges lists
2. Which of the following is the correct syntax to use map() with a dictionary to replace values in a list colors = ['red', 'blue', 'green'] with numbers?
easy
A. mapped = list(map(lambda x: {'red':1, 'blue':2}[x], colors))
B. mapped = list(map({'red':1, 'blue':2}, colors))
C. mapped = list(map(colors.map({'red':1, 'blue':2})))
D. mapped = list(map(colors, {'red':1, 'blue':2}))
Solution
Step 1: Check the correct order of arguments in map()
The first argument must be a function, the second is the iterable (list).
Step 2: Identify which option uses a function properly
Only mapped = list(map(lambda x: {'red':1, 'blue':2}[x], colors)) uses a lambda function to map dictionary values to list elements correctly.
Final Answer:
mapped = list(map(lambda x: {'red':1, 'blue':2}[x], colors)) -> Option A
Quick Check:
Function first, iterable second in map() [OK]
Hint: map(func, iterable) always has function first [OK]
Common Mistakes:
Swapping function and iterable arguments
Trying to pass dictionary directly as function
Using map() without a function
3. What is the output of this code?
numbers = [1, 2, 3, 4]
result = list(map(lambda x: x * 2, numbers))
print(result)
medium
A. [1, 4, 9, 16]
B. [1, 2, 3, 4]
C. [0, 2, 4, 6]
D. [2, 4, 6, 8]
Solution
Step 1: Understand the lambda function
The lambda function multiplies each element by 2.
Step 2: Apply the function to each element in the list
1*2=2, 2*2=4, 3*2=6, 4*2=8, so the result is [2, 4, 6, 8].
Final Answer:
[2, 4, 6, 8] -> Option D
Quick Check:
Each number doubled = [2,4,6,8] [OK]
Hint: Multiply each element by 2 mentally [OK]
Common Mistakes:
Confusing map with filter
Not applying function to all elements
Mistaking squares for doubles
4. The code below throws an error. What is the problem?
A. The map() function requires three arguments, but only two were given.
B. The list colors contains an invalid value 'green'.
C. You cannot pass a dictionary directly as the function argument in map().
D. The print statement is missing parentheses.
Solution
Step 1: Check the map() function arguments
map() expects a function as the first argument, but a dictionary was passed instead.
Step 2: Understand why this causes an error
A dictionary is not callable, so map() cannot use it as a function.
Final Answer:
You cannot pass a dictionary directly as the function argument in map(). -> Option C
Quick Check:
map() needs a function, not a dict [OK]
Hint: map() first argument must be callable (a function) [OK]
Common Mistakes:
Thinking dictionary can be used directly as function
Blaming list contents for error
Ignoring function argument rules
5. You have a list of fruit names: fruits = ['apple', 'banana', 'cherry', 'date']. You want to replace each fruit with its color using this dictionary: colors = {'apple': 'red', 'banana': 'yellow', 'cherry': 'red'}. Using map(), how can you replace fruits not in the dictionary with the string 'unknown'?
hard
A. Use list(map(colors[x], fruits))
B. Use list(map(lambda x: colors.get(x, 'unknown'), fruits))
C. Use list(map(lambda x: colors[x], fruits))
D. Use list(map(colors.get, fruits))
Solution
Step 1: Understand the need for default value
Since 'date' is not in the dictionary, we need a default value to avoid errors.
Step 2: Use dictionary's get() method with default in a lambda
The lambda function calls colors.get(x, 'unknown') to return the color or 'unknown'.
Final Answer:
list(map(lambda x: colors.get(x, 'unknown'), fruits)) -> Option B
Quick Check:
Use get() with default for missing keys [OK]
Hint: Use dict.get(key, default) inside map lambda [OK]
Common Mistakes:
Not handling missing keys causing KeyError
Passing dictionary directly without function
Using map without default value
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.