The map() function is used to apply a given function to every item of aniterable, such as alist ortuple, and returns amap 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.
Pythons=['1','2','3','4']res=map(int,s)print(list(res))
Explanation:Here, we used the built-inint function to convert each string in the list s into an integer. Themap()function takes care of applying int() to every element
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, themap()function returns amap object, which is aniterator. In many cases, we will need to convert thisiterator to alist to work with the results directly.
Example: Let's see how to double each elements of the given list.
Pythona=[1,2,3,4]# Using custom function in "function" parameter# This function is simply doubles the provided numberdefdouble(val):returnval*2res=list(map(double,a))print(res)
Explanation:
- Themap() function returned an iterator, which we then converted into a list usinglist(). This is a common practice when working withmap()
- We used a custom function to double each value in the lista. The result was mapped and converted into a list for easy display.
map() with lambda
We can use alambda function instead of a custom function withmap() to make the code shorter and easier. Let's see how to improve the above code for better readability.
Pythona=[1,2,3,4]# Using lambda function in "function" parameter# to double each number in the listres=list(map(lambdax:x*2,a))print(res)
Explanation: We used lambdax: x * 2 to double each value in the lista. The result was mapped and converted into a list for easy display.
Using map() with multiple iterables
We can usemap() with multiple iterables if the function we are applying takes more than one argument.
Example: In this example,map()takes two iterables (a andb) and applies thelambda function to add corresponding elements from both lists.
Pythona=[1,2,3]b=[4,5,6]res=map(lambdax,y:x+y,a,b)print(list(res))
Examples of map() function
Converting to uppercase
This example shows how we can usemap()to convert a list of strings to uppercase.
Pythonfruits=['apple','banana','cherry']res=map(str.upper,fruits)print(list(res))
Output['APPLE', 'BANANA', 'CHERRY']
Explanation: Thestr.upper method is applied to each element in the list fruits usingmap(). The result is a list of uppercase versions of each fruit name.
Extracting first character from strings
In this example, we usemap() to extract the first character from each string in a list.
Pythonwords=['apple','banana','cherry']res=map(lambdas: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 usemap() to remove leading and trailing whitespaces from each string in a list.
Pythons=[' hello ',' world ',' python ']res=map(str.strip,s)print(list(res))
Output['hello', 'world', 'python']
Explanation: Thestr.strip method removes leading and trailing whitespaces from each string in the list strings. Themap() function appliesstr.strip to each element and returning a list of trimmed strings.
Calculate fahrenheit from celsius
In this example, we usemap() to convert a list of temperatures from Celsius to Fahrenheit.
Pythoncelsius=[0,20,37,100]fahrenheit=map(lambdac:(c*9/5)+32,celsius)print(list(fahrenheit))
Output[32.0, 68.0, 98.6, 212.0]
Explanation: The lambda functionc: (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.