Bird
Raised Fist0
Pythonprogramming~10 mins

map() function in Python - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to apply the str function to each number in the list using map().

Python
numbers = [1, 2, 3]
result = list(map([1], numbers))
print(result)
Drag options to blanks, or click blank then click option'
Alen
Bint
Csum
Dstr
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using int instead of str which does not convert numbers to strings.
Using sum which expects an iterable, not a single value.
Using len which returns length, not conversion.
2fill in blank
medium

Complete the code to square each number in the list using map() and a lambda function.

Python
numbers = [1, 2, 3]
squared = list(map(lambda x: x[1]2, numbers))
print(squared)
Drag options to blanks, or click blank then click option'
A+
B**
C*
D-
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using * without repeating the variable (like x*x inside lambda).
Using + which adds instead of squares.
Using - which subtracts.
3fill in blank
hard

Fix the error in the code to convert all strings in the list to uppercase using map().

Python
words = ['apple', 'banana', 'cherry']
upper_words = list(map([1], words))
print(upper_words)
Drag options to blanks, or click blank then click option'
Astr.upper
Bstr.upper()
Cupper
Dstr.uppercase
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using str.upper() which calls the method immediately and causes an error.
Using upper which is undefined.
Using str.uppercase which does not exist.
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their lengths as values using map().

Python
words = ['cat', 'dog', 'bird']
lengths = dict(zip(words, map([1], [2])))
print(lengths)
Drag options to blanks, or click blank then click option'
Alen
Bwords
Crange(len(words))
Dstr
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using range(len(words)) which gives indices, not words.
Using str which converts to string, not length.
Mapping over something other than the words list.
5fill in blank
hard

Fill all three blanks to filter and create a dictionary of words longer than 3 characters with their uppercase forms using map() and filter().

Python
words = ['cat', 'dog', 'bird', 'elephant']
filtered = filter(lambda w: len(w) [1] 3, words)
result = {w[2]: [3](w) for w in filtered}
print(result)
Drag options to blanks, or click blank then click option'
A>
B==
C.upper()
Dstr.upper
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using == instead of > in filter condition.
Using upper without calling it as a method.
Using str.upper incorrectly without parentheses.

Practice

(1/5)
1. What does the map() function do in Python?
easy
A. Combines two lists into a dictionary
B. Creates a new list by filtering items from an iterable
C. Sorts the items of a list in ascending order
D. Applies a given function to each item of an iterable and returns a map object

Solution

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

    The map() function takes a function and an iterable, then applies the function to each item.
  2. Step 2: Identify the return type

    It returns a map object, which can be converted to a list to see the results.
  3. Final Answer:

    Applies a given function to each item of an iterable and returns a map object -> Option D
  4. Quick Check:

    map() applies function to items [OK]
Hint: Remember: map applies function to each item [OK]
Common Mistakes:
  • Confusing map() with filter()
  • Thinking map() returns a list directly
  • Assuming map() sorts or combines lists
2. Which of the following is the correct syntax to use map() to double each number in the list [1, 2, 3]?
easy
A. map(lambda x: x * 2, [1, 2, 3])
B. map([1, 2, 3], lambda x: x * 2)
C. map(x * 2, [1, 2, 3])
D. map(lambda x: x * 2)

Solution

  1. Step 1: Check the order of arguments in map()

    The first argument must be a function, the second an iterable.
  2. Step 2: Verify the function syntax

    Using a lambda function like lambda x: x * 2 is correct to double each item.
  3. Final Answer:

    map(lambda x: x * 2, [1, 2, 3]) -> Option A
  4. Quick Check:

    Function first, iterable second [OK]
Hint: Function goes first, iterable second in map() [OK]
Common Mistakes:
  • Swapping function and iterable arguments
  • Omitting the iterable argument
  • Passing an expression instead of a function
3. What is the output of the following code?
nums = [1, 2, 3, 4]
squared = map(lambda x: x**2, nums)
print(list(squared))
medium
A. [1, 4, 9, 16]
B. [2, 4, 6, 8]
C. [1, 2, 3, 4]
D. Error: map object cannot be converted to list

Solution

  1. Step 1: Understand the lambda function

    The lambda function squares each number: x**2.
  2. Step 2: Apply map and convert to list

    Mapping squares over [1, 2, 3, 4] gives [1, 4, 9, 16]. Converting map object to list shows these values.
  3. Final Answer:

    [1, 4, 9, 16] -> Option A
  4. Quick Check:

    Squares of 1 to 4 = [1, 4, 9, 16] [OK]
Hint: Convert map to list to see results [OK]
Common Mistakes:
  • Forgetting to convert map object to list
  • Confusing square with double
  • Expecting map to print directly
4. What is wrong with this code snippet?
nums = [1, 2, 3]
result = map(lambda x: x + 1)
print(list(result))
medium
A. Lambda function syntax is incorrect
B. Missing iterable argument in map()
C. Cannot convert map object to list
D. Using print inside map is invalid

Solution

  1. Step 1: Check map() arguments

    The map function requires two arguments: a function and an iterable. Here, the iterable is missing.
  2. Step 2: Identify the error cause

    Without the iterable, map() cannot apply the function, causing a TypeError.
  3. Final Answer:

    Missing iterable argument in map() -> Option B
  4. Quick Check:

    map needs function and iterable [OK]
Hint: Always provide both function and iterable to map() [OK]
Common Mistakes:
  • Forgetting the iterable argument
  • Assuming map works with one argument
  • Misunderstanding lambda function usage
5. You have two lists: names = ['alice', 'bob', 'carol'] and ages = [25, 30, 22]. Using map(), how can you create a list of strings like ['alice is 25', 'bob is 30', 'carol is 22']?
hard
A. list(map(lambda x: x[0] + ' is ' + x[1], names, ages))
B. map(lambda n, a: n + ' is ' + a, names, ages)
C. list(map(lambda n, a: f'{n} is {a}', names, ages))
D. list(map(lambda n: n + ' is ' + ages, names))

Solution

  1. Step 1: Understand map with multiple iterables

    map can take multiple iterables and pass corresponding items to the function.
  2. Step 2: Use lambda with two parameters

    The lambda takes name and age, then formats the string using f-string for clarity.
  3. Step 3: Convert map object to list

    Wrapping with list() shows the final list of formatted strings.
  4. Final Answer:

    list(map(lambda n, a: f'{n} is {a}', names, ages)) -> Option C
  5. Quick Check:

    map with multiple iterables and f-string [OK]
Hint: Use lambda with multiple args and list() to see results [OK]
Common Mistakes:
  • Passing only one iterable when two are needed
  • Concatenating string and int without conversion
  • Not converting map object to list