DEV Community

Cover image for Getting Started with Python's map() Function: A Beginner's Guide
Osahenru
Osahenru

Posted on

Getting Started with Python's map() Function: A Beginner's Guide

In Python, a map() refers to the process of applying a function to each item in an iterable (like a list, tuple, or dictionary) and returning a new iterable with the results. map() function takes two arguments: a function and an iterable. The function is applied to each item in the iterable, and the results are returned as a new iterable. These terminologies might sound a bit unfamiliar so let’s explain with some examples

syntax:

map(function, iterables)
Enter fullscreen mode Exit fullscreen mode

Assuming we have a string “1/2" from a user’s input and we want to perform an arithmetic operation on this string, how might we go about that, well lets list out the steps

Traditional approach
Step 1
Split the fraction, using the split() method and “/” as it’s delimiter

1/2".split(“/”)
Enter fullscreen mode Exit fullscreen mode

Step 2
The split function returns a list of two values(strings) which we can assign to an unpacked variable a and b

a, b = 1/2".split(“/”)
Enter fullscreen mode Exit fullscreen mode

Step 3
Convert a and b to an int

a = int(a)
b = int(b)
Enter fullscreen mode Exit fullscreen mode

Step 4
Finally we perform our arithmetic operation with

answer = a / b
print(answer)
Enter fullscreen mode Exit fullscreen mode

Putting everything together we have 5 lines of code

a, b = "1/2".split("/")
a = int(a)
b = int(b)
fraction = a / b
print(fraction)
Enter fullscreen mode Exit fullscreen mode

Output: 0.5

Using map() function
Now, lets see how we can use the map function to achieve same result but with fewer lines of code
Step 1
Split the fraction, using the split() method “/” as it’s delimiter

1/2".split(“/”)
Enter fullscreen mode Exit fullscreen mode

Step 2
The split function returns a list of two values(strings) which we can assign to an unpack value

a, b = 1/2".split(“/”)
Enter fullscreen mode Exit fullscreen mode

Step 3
Use the map() function to convert the return values of the split() to an int

a, b = map(int, 1/2".split(“/”))
Enter fullscreen mode Exit fullscreen mode

Step 4
Finally we perform our arithmetic operation with

answer = a / b
Enter fullscreen mode Exit fullscreen mode

Putting all together we have 3 lines of code as to 5 lines of code from the traditional method

a, b = map(int, "1/2".split("/"))
answer = a / b
print(answer)
Enter fullscreen mode Exit fullscreen mode

Output:0.5

Note that the split() function returns a list of strings [“1”, “2”] and key word int is a python function which is applied to each item in the list and these values are unpacked and assigned to the variable a and b

Map() and Lambda, What is a Lambda function ?
A lambda function is an anonymous function defined using the lambda keyword. It is a small, inline function that can have any number of arguments but can only have one expression.

Syntax:

lambda arguments: expression
Enter fullscreen mode Exit fullscreen mode

Example
Assuming we need a function that adds two numbers together, let us see how we can achieve this using both the traditional way and the lambda function
Traditional way

def add(a,b):
    result = a + b
    return result
Enter fullscreen mode Exit fullscreen mode

and to call this function in the main function will be like this

print(add(4,3))
Enter fullscreen mode Exit fullscreen mode

Output:7
Using a lambda function

add = lambda a,b: a + b
Enter fullscreen mode Exit fullscreen mode

and we call the function in the main function, same way

print(add(6,9)
Enter fullscreen mode Exit fullscreen mode

Output: 15

As seen from the example above a lambda function can take any number of arguments

Now lets see an example as to how we can use both a map() and lambda function

assuming we want a function that returns a list but the first character of each word of this list is being capitalized, say we want to convert a list like this [“serah”, “hakim”, “adam”, “kwame”] to this [“Serah”, “Hakim”, “Adam”, “Kwame”]

Traditional approach

def title_each_word(word_list):
   new_word = []
   for word in word_list:
       new_word.append(word.title())

   return new_word

print(title_each_word(["serah", "simi", "nana"]))
Enter fullscreen mode Exit fullscreen mode

Output: [“Serah”, “Hakim”, “Adam”, “Kwame”]

Using lambda and map() function

word = ["serah", "hakim", "adam", "kwame"]
new_word = map(lambda word: word.title(), word)

print(list(new_word))
Enter fullscreen mode Exit fullscreen mode

Output: [“Serah”, “Hakim”, “Adam”, “Kwame”]
You can see how concise the map and lambda function have made our code look like, now when does one use a lambda function or a map function

map() lambda
It is used when you want to apply a single transformation function to all the iterable elements and return an iterator A quick function you can just use and throw away without a name or sort

Conclusion
Just like any concepts, with regular practice these Python features will become second nature if you keep at it as familiarizing yourself with them will ensure you adhere strictly to the DRY principles

Top comments (0)