The map()
function executes a given function to each element of an iterable (such as lists, tuples, etc.).
Example
numbers = [1,2,3,4] # returns the square of a number def square(number): return number * number # apply square() to each item of the numbers list squared_numbers = map(square, numbers) # converting to list for printing result = list(squared_numbers) print(result) # Output: [1,4,9,16]
map() Syntax
map(function, iterables)
map() Arguments
The map()
function takes two arguments:
- function - a function that is applied to each element of an iterable.
- iterables - iterables such as lists, tuples, etc.
Note: We can pass more than one iterable to the map()
function.
map() Return Value
The map()
function returns a map object, which can be easily converted to lists, tuples, etc.
Example: Working of map()
def square(n): return n*n numbers = (1, 2, 3, 4) result = map(square, numbers) print(result) # converting the map object to set result = set(result) print(result)
Output
<map object at 0x7f722da129e8> {16, 1, 4, 9}
In the above example, we have defined a tuple named numbers with 4 elements. Notice the line
result = map(square, numbers)
Here, the map()
function squares each element of the tuple using the square
function. The initial output <map object at 0x7f722da129e8>
represents a map object
Finally, we convert the map object to a set and obtain the squared values of each element in tuple.
Note: The output is not in order because sets in Python are unordered collections and do not preserve the original sequence of elements.
map() with Lambda
In a map()
function, we can also use a lambda function instead of a regular function. For example,
numbers = (1, 2, 3, 4) result = map(lambda x: x*x, numbers) print(result) # convert to set and print it print(set(result))
Output
<map object at 0x7fc834e22170> {16, 1, 4, 9}
In the above example, we have directly used the lambda
function to perform the square of each element in the tuple.
Note: Use of lambda()
function makes the code concise and easier to read.
Add Multiple Lists using map() and lambda
We can use map()
and lambda
to add multiple lists in Python. For example,
num1 = [1, 2, 3] num2 = [10, 20, 40] # add corresponding items from the num1 and num2 lists result = map(lambda n1, n2: n1+n2, num1, num2) print(list(result))
Output
[11, 22, 43]
In the above example, we have passed two lists num1
and num2
to the map()
function. Notice the line,
result = map(lambda n1, n2: n1+n2, num1, num2)
Here, the lambda
function is used within map()
to add the corresponding elements of the both lists.
String Modification using map()
We can use map()
function to modify the string. For example,
# list of actions actions=['eat', 'sleep','read'] # convert each string into list of individual characters result= list(map(list,actions)) print(result)
Output
[['e', 'a', 't'], ['s', 'l', 'e', 'e', 'p'], ['r', 'e', 'a', 'd']]
In the above example, we have used list() around map()
to convert each string to a list of individual characters.
Also Read: