Python map() function with EXAMPLES

By | January 10, 2021
Python map() function

The Python map() function is a Python built-in function. The map() function can apply a specific function definition on all the items present in the given Python iterator(string, list, tuple, dictionary, etc).

Here in this tutorial, we will learn How to use the Python map() function and discuss see some of its examples with various Python iterators.

What is Python map() function?

The Python map() function is a simple and powerful Python function or method which is generally used when we want to apply a specific function on every element of iterator object like list, dictionary, tuple, set, and string.

Python map() function syntax

map(function_name, iterator_object1, iterator_object2)

The Python map() function generally accept two parameters

  • Function name represents the function that will be applied to every element or item present in the iterator. The function name could be Python user-defined function, Python inbuilt function, or Python lambda function.
  • iterator represents a Python iterator object such as list, tuple, etc on which elements the function will be applied.

Python map() function return value

The map() function return an iterable <map> object, and using list, tuple, or set we can convert the map object to the corresponding list, tuple or set.

Working of Python map() function

The map() function generally accepts two parameters, the function, and iterable object.

The map() function picks every element from the iterable objects one by one and passes it to the specified function. And store the return values as a map iterable object.

Vamware

If the specified function needs more than one, in that case we need to specify more than one iterable object of the same shape.

Python map() function with two parameters Example

def multiple3(num):
    return num *3

my_list = [1,2,3,4,5,6,7]

map_instance = map(multiple3, my_list)

print("map_instance value is:", map_instance)

print("Convert map_instance to list:", list(map_instance) )

Output

map_instance value is: <map object at 0x03A82178>
Convert map_instance to list: [3, 6, 9, 12, 15, 18, 21]

As in the above example, you can see that the map() function return a <map> object  after applying the function multiple3on every my_listelement.

In the above example, the multiple3(num) function only accepts single argument num that’s why we only defined a single iterable object my_list.

If the specified function needs more than one parameter, there you need to define more than one iterable object.

Python map function with more than 2 parameters Example

def multiply(num1, num2):
    return num1* num2

my_list1 = [1,2,3,4,5,6,7]

my_list2 = [1,2,3,4,5,6,7]

map_instance = map(multiply, my_list1, my_list2)

#convert the map object to list
print("The result is: ", list(map_instance) )

Output

The result is:  [1, 4, 9, 16, 25, 36, 49]

Iterate over the map object

By far, to see the result of the map() function we convert the map_instance to the list by using the Python list() function.

As the map() function returns a map iterable object and we could also use the for loop to iterate over map object and grab all values.

Example

def multiply(num1, num2):
    return num1* num2

my_list1 = [1,2,3,4,5,6,7]

my_list2 = [1,2,3,4,5,6,7]

map_instance = map(multiply, my_list1, my_list2)

#iterate over map object
for value in map_instance:
    print(value)

Output

1
4
9
16
25
36
49

How to use Python map() function with Python built-in functions/method

The Python map() function can be used with Python’s built-in functions, and as a normal function, you just need to mention the built-in function name as the first parameter of the map() function.

With the help of Python map() and other built-in functions like float(), str(), math.ceil(), math.floor(), etc. we can apply all those functions to an iterable object all elements.

For instance, if you have a list of floating-point numbers and you want a tuple of integer values of the same floating numbers list. So, instead of creating a for loop, traverse through list of floating numbers and convert every element using int() method, and add them to the tuple, we can simply use the Python map() function. And it will do all those things within a single line of code.

Example

 float_list = [12.3, 23.2, 34.23, 36.56, 70.78, 79.41]

int_tuple = tuple( map(int, float_list))

print("The value of int_tuple is:", int_tuple)

Output

The value of int_tuple is: (12, 23, 34, 36, 70, 79)

The map(int, float_list), statement pass all float_list elements to the Python int() method and store the returned value. At last, the tuple() function convert the map object to the tuple object.

How to use Python string iterator with Python map() function?

The Python string is also an iterable object. And like other iterators, it can be passed as the second parameter to the map(function, string) function.

The map() function applies the specified function to every character of the string.

Example

def vowelUpper(char):
    if char in "aeiou":
        return char.upper()
    else:
        return char

string = "Welcome to Techgeekbuzz.com"

map_obj = map(vowelUpper, string)

#convert map() object to string
caps_vowel =  "".join(list(map_obj))

print(caps_vowel) 

Output

WElcOmE tO TEchgEEkbUzz.cOm

Note: We cannot use the str() method to convert the map() object values to a string object.

How to use Python map() function with Python tuple

A Python tuple is an iterable object. It is an immutable data structure that store elements using rounded brackets and separate them with comma.

Let’s see an example where we use a tuple iterator as a second parameter to the map() function and convert every tuple integer and floating-point number to a string.

Example

num_tup = (1, 1.34, 3, 4.34, 7, 8.9)

map_obj = map(str, num_tup)

#convert map() object to tuple
str_tuple =  tuple(map_obj)

print(str_tuple)

Output

('1', '1.34', '3', '4.34', '7', '8.9')

How to use Python map() function with Python dictionary

The Python dictionary is a collection of key:value pairs. It is also an iterable object, and by default, the iteration only occurred in the key section of the dictionary.

Example

def add10(key):
    return key+10

my_dict = {1:100, 2:200, 3:300, 4:400, 5:500}

map_obj = map(add10, my_dict)

#convert map object to list
key_list =list(map_obj)

print(key_list)

Output

[11, 12, 13, 14, 15]

In the above example, you can see that the map(add10, my_dict)statement only applied the add10 function to the my_dict key’s not values.

If you want to apply the function to dictionary values, you need to pass the dictionary values as an iterable object.

Example

def add10(value):
    return value+10

my_dict = {1:100, 2:200, 3:300, 4:400, 5:500

#map will pass my_dict values to add10
map_obj = map(add10, my_dict.values())

#convert map object to list
value_list =list(map_obj)

print(value_list)

Output

[110, 210, 310, 410, 510]

You can also access both keys and values of a Dictionary using the dictionary items() method.

Example

def add10(item):
    key= item[0]
    value = item[1]
    return key+10, value+10

my_dict = {1:100, 2:200, 3:300, 4:400, 5:500}

map_obj = map(add10, my_dict.items())

#convert map object to dict
new_dict =dict(map_obj)

print(new_dict)

Output

{11: 110, 12: 210, 13: 310, 14: 410, 15: 510}

How to use Python map() function with Python set()

Set is a Python built-in data structure that only stores unique elements or values. It is also an iterable object and can be used as an iterator object parameter to the map() function

Example

def add1(value):
    return value+1

my_set = {20, 40, 50, 60, 80}

map_obj = map(add1, my_set)

#convert map object to set
new_set =set(map_obj)

print(new_set)

Output

{41, 81, 51, 21, 61}

How to use Python map() function with Python Lambda Function

Python Lambda Functions aka Python Anonymous Functions, are often used with map() functions. Lambda function provides an alternative way to define a function without using any function name. And map() statement is the place where lambda functions excel.

The lambda function can be defined as the first parameter of map() function.

Example

my_list = [20, 40, 50, 60, 80]

my_sq_list = list(map(lambda num:num**2, my_list))

print(my_sq_list)

Output

[400, 1600, 2500, 3600, 6400]

Conclusion

The map() function is an inbuilt Python function that returns an iterable <map> object. It generally accepts two parameters function (f) and iterable objects. The number of iterable objects depends on the number of parameters accepted by the function (f).

You can iterate over a map object using Python for loop. And it can also be changed or converted to Python list, dictionary, tuple, and set using list(), dict(), tuple() and set() functions.

People are also reading:

Author: Vinay

I am a Full Stack Developer with a Bachelor's Degree in Computer Science, who also loves to write technical articles that can help fellow developers.

Leave a Reply

Your email address will not be published. Required fields are marked *