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

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

·

4 min read

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)

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(“/”)

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(“/”)

Step 3

Convert a and b to an int

a = int(a)
b = int(b)

Step 4

Finally we perform our arithmetic operation with

answer = a / b
print(answer)

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)

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

1/2".split(“/”)

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(“/”)

Step 3

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

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

Step 4

Finally we perform our arithmetic operation with

answer = a / b

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)

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

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

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

print(add(4,3))

Output:7

Using a lambda function

add = lambda a,b: a + b

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

print(add(6,9)

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"]))

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))

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 iteratorA 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