Python map() function (original) (raw)
Last Updated : 23 Oct, 2024
The map() function is used to apply a given function to every item of an **iterable, such as a list or tuple, and returns a **map object (which is an iterator).
Let’s start with a simple example of using map() to convert a list of strings into a list of integers.
Python `
s = ['1', '2', '3', '4'] res = map(int, s) print(list(res))
`
**Explanation: Here, we used the built-in **int function to convert each string in the list s into an integer. The **map() function takes care of applying int() to every element
Table of Content
- Converting map object to a list
- map() with lambda
- Using map() with multiple iterables
- Examples of map() function
Syntax of the map() function
The syntax for the map() function is as follows:
map(function, iterable)
**Parameter:
- **function: The function we want to apply to every element of the iterable.
- **iterable: The iterable whose elements we want to process.
**Note: We can also pass multiple iterables if our function accepts multiple arguments.
Converting map object to a list
By default, the **map() function returns a **map object, which is an **iterator. In many cases, we will need to convert this **iterator to a **list to work with the results directly.
**Example: Let’s see how to double each elements of the given list.
Python `
a = [1, 2, 3, 4]
Using custom function in "function" parameter
This function is simply doubles the provided number
def double(val): return val*2
res = list(map(double, a)) print(res)
`
**Explanation:
- The **map() function returned an iterator, which we then converted into a list using **list(). This is a common practice when working with **map()
- We used a custom function to double each value in the list **a. The result was mapped and converted into a list for easy display.
map() with lambda
We can use a lambda function instead of a custom function with **map() to make the code shorter and easier. Let’s see how to improve the above code for better readability.
Python `
a = [1, 2, 3, 4]
Using lambda function in "function" parameter
to double each number in the list
res = list(map(lambda x: x * 2, a)) print(res)
`
**Explanation: We used lambda **x: x * 2 to double each value in the list **a. The result was mapped and converted into a list for easy display.
Using map() with multiple iterables
We can use **map() with multiple iterables if the function we are applying takes more than one argument.
**Example: In this example, **map() takes two iterables (**a and **b) and applies the lambda function to add corresponding elements from both lists.
Python `
a = [1, 2, 3] b = [4, 5, 6] res = map(lambda x, y: x + y, a, b) print(list(res))
`
Examples of map() function
Converting to uppercase
This example shows how we can use **map() to convert a list of strings to uppercase.
Python `
fruits = ['apple', 'banana', 'cherry'] res = map(str.upper, fruits) print(list(res))
`
Output
['APPLE', 'BANANA', 'CHERRY']
**Explanation: The str.upper method is applied to each element in the list fruits using **map(). The result is a list of uppercase versions of each fruit name.
In this example, we use **map() to extract the first character from each string in a list.
Python `
words = ['apple', 'banana', 'cherry'] res = map(lambda s: s[0], words) print(list(res))
`
**Explanation: The lambda function s: s[0] extracts the first character from each string in the list words. map() applies this lambda function to every element, resulting in a list of the first characters of each word.
Removing whitespaces from strings
In this example, We can use **map() to remove leading and trailing whitespaces from each string in a list.
Python `
s = [' hello ', ' world ', ' python '] res = map(str.strip, s) print(list(res))
`
Output
['hello', 'world', 'python']
**Explanation: The str.strip method removes leading and trailing whitespaces from each string in the list strings. The **map() function applies **str.strip to each element and returning a list of trimmed strings.
Calculate fahrenheit from celsius
In this example, we use **map() to convert a list of temperatures from Celsius to Fahrenheit.
Python `
celsius = [0, 20, 37, 100] fahrenheit = map(lambda c: (c * 9/5) + 32, celsius) print(list(fahrenheit))
`
Output
[32.0, 68.0, 98.6, 212.0]
**Explanation: The lambda function **c: (c * 9/5) + 32 converts each Celsius temperature to Fahrenheit using the standard formula. The map() function applies this transformation to all items in the list celsius.