avatarYang Zhou

Summary

The article discusses five practical applications of lambda functions in Python, enhancing code efficiency and readability.

Abstract

The article "5 Uses of Lambda Functions in Python" delves into the versatility and practicality of lambda functions within Python programming. It introduces the concept of lambda functions as anonymous functions essential to functional programming paradigms. The article explains the syntax of lambda functions and illustrates their use in various scenarios, such as defining simple functions, working with higher-order functions like map(), filter(), and reduce(), serving as keys for sorting, being immediately invoked, and applying them in closures. It emphasizes the elegance and conciseness that lambda functions bring to Python code, while also acknowledging the importance of readability and maintainability, suggesting that lambda functions should be used judiciously to enhance code design without overuse.

Opinions

  • The author believes that lambda functions can make Python code more elegant and concise.
  • Lambda functions are presented as a simpler alternative to defining simple functions, suggesting a preference for brevity in certain contexts.
  • The article suggests that the use of lambda functions in conjunction with higher-order functions can lead to more elegant Python programs.
  • It is implied that using lambda functions for immediate invocation is more suitable for interactive interpreter sessions rather than production code.
  • The author advocates for the use of lambda functions in closures to write more readable and clean nested functions.
  • The article subtly differentiates between junior and senior Python programmers based on their coding solutions for filtering odd numbers from a list, hinting at a preference for more sophisticated and concise solutions.
  • While promoting the use of lambda functions, the author also cautions against their overuse and emphasizes the importance of understanding when and how to apply them effectively.

5 Uses of Lambda Functions in Python

Introduction

The lambda function, which is also called the anonymous function, is one of the core concepts in functional programming.

Python, which supports multi programming paradigms, also gives us a simple way to define a lambda function.

The template of writing the lambda function in Python is:

lambda arguments : expression

It contains three parts:

  • A lambda keyword
  • Arguments that the function will receive
  • An expression whose result is the return value of the function

Because of its simplicity, the lambda functions can make our Python code more elegant in some using scenarios. This post will demonstrate 5 common uses of lambda functions in Python and explain them with interesting examples.

Use 1: Give It a Name and Use It As Normal

If we just need a simple function, lambda is a good choice, since it can be treated as a simpler way to define a function. Therefore, we can give it a name and use it like a normal function.

As the above example shown, the results of add_ten() and lambda_add_ten() methods are identical, but the lambda function can make our code shorter and cleaner.

Use 2: Cooperate With Higher Order Functions

If we can use lambda functions together with higher order functions, such as map(), filter() and reduce(), programs will become elegant.

Let’s answer an interview question for Python developers:

Give you a list as following, can you print all the odd numbers within it?

numbers = [1, 12, 37, 43, 51, 62, 83, 43, 90, 2020]

The question looks simple but it’s enough to separate junior and senior Python developers.

A junior programmer may write some code like the following:

It works and nothing wrong. However, being good is not being great. A senior Python programmer will just need one line of code to do the same:

It looks more elegant, doesn’t it?

Photo by Clark Tibbs on Unsplash

By the way, the above one-line solution is just for showing how a lambda function can be used. Of course there are other one-line solutions, such as the list comprehension technique:

odd_numbers = [i for i in numbers if i % 2 == 1]

Actually, a list comprehension may more readable than a higher order function cooperated with a lambda function in many cases. More details:

Use 3: Assign to the “Key” Argument

Some built-in methods have the key arguments which give us more flexibility.

For example, when we use sorted() or sort() method to sort an iterable in Python, the key argument determines how to compare two elements in the iterable.

This scenario is also the showtime of lambda functions.

As stated above, if we sort the leaders list by the length of every name, a simple way is passing a lambda function to the key argument.

Another common using scenario is to sort a dictionary by its keys or values.

Use 4: Immediately Invoke It

An immediately invoked function expression (IIFE) is an idiom from JavaScript. The lambda functions in Python support this trick as well. We can immediately run a lambda function as the following:

>>> (lambda x,y:x*y)(2,3)
6

However, for readability and maintainability sake, it’s better to only use this trick in Python’s interactive interpreter.

By the way, if you are familiar with underscore tricks in Python, the following way is also available.

>>> lambda x,y:x*y
<function <lambda> at 0x7fc319102d30>
>>> _(2,3)
6

Use 5: Apply It in Closures

The closure is a powerful functional programming feature which is also available in Python. Since it’s about nested functions, we can use lambda functions to make programs clearer.

The following is an example of using closure:

How can we use the lambda function to simplify the above code?

As the above example shown, when we use nested functions, the lambda function can help us write more readable and clean code.

If you haven’t known closures in Python yet, no worries at all, check out the following tutorial:

Conclusion

The lambda function in Python gives us more flexibility and options to design methods. In a word, we should be familiar with the above five common uses to apply it properly and not overuse it.

Thanks for reading. If you like it, please follow me and check out more great Python tutorials below:

Programming
Python
Coding
Functional Programming
Lambda Function
Recommended from ReadMedium