Python map
last modified January 29, 2024
Python map tutorial presents the Python built-in map function.
Python map() function
Python map built-in function applies the given
function on every item of iterable(s) and returns an iterator object.
map(function, iterable, ...)
It is possible to pass more than one iterable to the map function.
The function must take as many parameters as there are iterables.
Python map example
The following example uses Python map on
a list of integers.
#!/usr/bin/python
def square(x):
return x * x
nums = [1, 2, 3, 4, 5]
nums_squared = map(square, nums)
for num in nums_squared:
print(num)
We define a list of integers and apply the square
function on each element of the list with map.
def square(x):
return x * x
The square function squares its parameter.
nums = [1, 2, 3, 4, 5]
We define a list of integers.
nums_squared = map(square, nums)
The map function applies the square
function on each element of the nums list.
for num in nums_squared:
print(num)
We loop over the returned iterable and print the elements.
$ ./python_map.py 1 4 9 16 25
Python map equivalent
The following example shows a custom equivalent to Python 3 map
function.
#!/usr/bin/python
def square(x):
return x * x
def mymap(func, iterable):
for i in iterable:
yield func(i)
nums = [1, 2, 3, 4, 5]
nums_squared = mymap(square, nums)
for num in nums_squared:
print(num)
The mymap does the same thing as Python 3
map.
Python map with lambda
The next example creates an anonymous function inside
map with lambda operator.
#!/usr/bin/python
nums = [1, 2, 3, 4, 5]
nums_squared = map(lambda x: x*x, nums)
for num in nums_squared:
print(num)
The code example squares the elements of a list with
map and anonymous function created with
lambda.
Python map with multiple iterables
We have mentioned earlier that we can pass multiple iterables
into map.
#!/usr/bin/python
def multiply(x, y):
return x * y
nums1 = [1, 2, 3, 4, 5]
nums2 = [6, 7, 8, 9, 10]
mult = map(multiply, nums1, nums2)
for num in mult:
print(num)
In the code example have two iterables holding integers. The values from both iterables are multiplied.
def multiply(x, y):
return x * y
The function must take two parameters since there are two iterables passed
to map.
$ ./python_map_iterables.py 6 14 24 36 50
Python map multiple functions
In the next example, we show how to use multiple functions
in Python map.
#!/usr/bin/python
def add(x):
return x + x
def square(x):
return x * x
nums = [1, 2, 3, 4, 5]
for i in nums:
vals = list(map(lambda x: x(i), (add, square)))
print(vals)
In the example, we apply add and square
functions on the list of integer values.
for i in nums:
vals = list(map(lambda x: x(i), (add, square)))
print(vals)
We go through the elements in the for loop. In each cycle, we
create a list of two values, which are computed by applying
the add and square functions on
the value.
$ ./python_map_multiple_funcs.py [2, 1] [4, 4] [6, 9] [8, 16] [10, 25]
The first value is formed by addition, the second one by multiplication.
Python list comprehension
The functionality of Python map can be achieved with Python list
comprehensions as well.
#!/usr/bin/python
def square(x):
return x * x
nums = [1, 2, 3, 4, 5]
nums_squared = [square(num) for num in nums]
for num in nums_squared:
print(num)
The example creates a list of squared values from a list of integers with Python list comprehension.
Source
In this article we have worked with the Python map function.
Author
List all Python tutorials.