View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All

Python Lambda Functions with examples

By Pavan Vadapalli

Updated on Jan 17, 2024 | 7 min read | 5.7k views

Share:

Python — An Introduction

Python is a general-purpose programming language that is extremely popular. It is an interpreted high-level language that emphasizes code readability with the use of significant indentation. Python is used by programmers to write clean, logical codes for projects of any scale.

Python was conceived in the 1980s as a successor to the ABC programming language by Guido Van Rossum. Since then, Python has remained a popular programming language due to its versatility.

Functions — An introduction

Functions are code blocks that work when called can be called n times in a program. They are structured code statements and perform a specific function, and can be used at any time. Functions are fundamentally classified as:

  • User-Defined Function (USF) — Customizable functions that can be changed as per the requirements of the programmer.
  • Built-in Functions (BIF) — Functions that cannot be customized and have to be used the way it is available.

Learn Data Science Courses online at upGrad

Python Lambda Functions

Python Lambda functions are essentially anonymous because they do not possess a definite name. A def function is used to denote a normal function in Python. Meanwhile, the keyword Lambda is used to define an anonymous Python function.

The Lambda function is a small function that can take several arguments but only one expression. They also have a more restrictive but concise syntax than regular Python functions. The lambda function was added to the Python Language in 1994 along with map(), filter(), and reduce() functions.

To define an anonymous function, one has to use the lambda keyword like def is used for normal functions. There are three parts to an anonymous function defined in Python:

  • The keyword lambda
  • Parameters or a bound variable
  • Function body

Syntax

The syntax to a lambda function is as follows:

Lambda p1, p2: expression

The p1 and p2 are the parameters here. There is no restriction for adding parameters in the lambda function. You can add as many or as few as you want. But the lambda function is syntactically restricted to one expression.

Examples for lambda function in Python:

Example 1 

x =”Lambda Function”

 # lambda gets pass to print

(lambda x : print(x))(x)

Output

Lambda Function

Example 2

x = lambda a : a + 10

print(x(5))

Output

15

Our learners also read: Learn Python Online for Free

Differences between normal function and lambda function

The lambda function possesses some syntactic differences than normal functions. 

  • Only expressions and not statements are used in the body. If any statements like pass, assert, return or raise are used, the output will show a SyntaxError.

Example

>>> (lambda x: assert x == 2)(2)

  File “<input>”, line 1

    (lambda x: assert x == 2)(2)

                    ^

SyntaxError: invalid syntax
  • A lambda function can only exist as a single expression. Even if the expression is spread throughout the body using multiple strings, it can only remain as a single expression.

Example:

>>> (lambda x:

… (x % 2 and ‘odd’ or ‘even’))(3)

‘odd’

When the lambda argument is odd, the code returns the string odd and even when it is not.  The code spans across two lines as it is inside the parentheses but remains as a single expression.

  • The lambda function does not support type annotations. Adding annotations to a lambda syntax will cause a Syntaxerror.
  • IIFE or Immediately Invoked Function Expression is a function executed as soon as it is defined. It is also known as Self Executing Anonymous Function. IIFE is a direct consequence of the lambda function, as a lambda function is callable as it is defined.

Now, let’s see the key differences between normal functions and lambda functions are:

(Source)

Lambda Functions – Pros and Cons

Pros

  • It makes the code more readable.
  • Ideal for functions that are used one time.
  • Easy to understand and can be used for simple logical explanations.

Cons:

  • Multiple independent expressions cannot be performed.
  • Using the lambda function is not ideal if a code would span for more than a line in a normal (def) function.
  • All the inputs, outputs, and operations cant be explained in a docstring like in a normal function.

Where to use Lambdas?

Even though normal def functions and lambda functions have key differences, internally, they are treated internally. 

  • The common use of lambda functions in Python is for functional programming. You can use lambda in functional programming to supply a function as a parameter to a different function.
  • If you need to reduce the number of lines to specify a function, lambdas are the way to go.
  • Lambda is also used with higher-order functions like map(), reduce() etc.
  • Response to UI framework events can be tracked using lambda functions.

Where to abstain from using lambda functions?

  • Writing complicated lambda functions is not a good practice as it will be difficult to decrypt. 
  • Refrain from using lambda functions for recurring operations.
  • If the code doesn’t follow the Python Style Guide(PEP8).

Lambda functions are tested exactly like regular functions. Both unittest and doctest can be used for this.

background

Liverpool John Moores University

MS in Data Science

Dual Credentials

Master's Degree18 Months
View Program

Placement Assistance

Certification8-8.5 Months
View Program

Lambda Function with filter()

Filter() is a built-in Python function and list as arguments. Filter () is used when all the iterable items are on a list, and another list is returned which contains items for which the function is true.

Example:

# Python code to illustrate

# filter() with lambda()

li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]

 final_list = list(filter(lambda x: (x%2 != 0) , li))

print(final_list)

Output:

[5, 7, 97, 77, 23, 73, 61]

(source)

Example:

# Program to filter out only the even items from a list

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

print(new_list)

Output

[4, 6, 8, 12]

Lambda Function with map()

The map function is used when all the items are in the list, and the list is returned with items returned by that function for each item.

Example: To double the value of each item in the list, the code is as follows:

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

print(new_list)

Output:

[2, 10, 8, 12, 16, 22, 6, 24]

Example: To cube every number in the list, the code is as follows

list_1 = [1,2,3,4,5,6,7,8,9]

cubed = map(lambda x: pow(x,3), list_1)

list(cubed)

Output:

[1, 8, 27, 64, 125, 216, 343, 512, 729]

Lambda Function with reduce() Function

The reduce() function in Python is a list and an argument. It is called to return an iterable and new reduced list. It is somewhat similar to the addition function.

Example 1

Note: this example is from the functools library.

To get the sum of a list, the code would be,

# Python code to illustrate
# reduce() with lambda()
# to get sum of a list
from functools import reduce
li = [5, 8, 10, 20, 50, 100]
sum = reduce((lambda x, y: x + y), li)
print (sum)
Output:

193

Conclusion

Usage of lambda functions in Python has been a controversial topic among programmers for a long time. While it is true that lambdas can be replaced with built-in functions, list comprehensions, and standard libraries, an understanding of lambda functions are also necessary. It helps you understand the fundamental principles of programming and write better codes. 

Even if you do not use lambda functions personally, there might be instances where you might come across these in other people’s programs. So, it’s recommended that you have basic knowledge of lambda functions anyway. 

Also, Check out all trending Python tutorial concepts in 2024.

If you are looking to learn full-fledged Python and enhance your career in data science and business analytics, upGrad’s online Professional Certificate Program in Data Science and Business Analytics from the Top US University – University of Maryland is your best bet. 

The program offers a chance to study at one of the top 100 global universities and earn a certificate from Maryland Smith to increase your chances of success in the field. It is a 9-months course with access to 300+ hiring partners, assured interview opportunities for freshers, and six mentorship calls.

Frequently Asked Questions (FAQs)

1. What are decorators in Python?

2. What are arguments in Python Lambda functions?

3. What are closures in Python Lambda functions?

Pavan Vadapalli

899 articles published

Get Free Consultation

+91

By submitting, I accept the T&C and
Privacy Policy

Start Your Career in Data Science Today

Top Resources

Recommended Programs

IIIT Bangalore logo
bestseller

The International Institute of Information Technology, Bangalore

Executive Diploma in Data Science & AI

Placement Assistance

Executive PG Program

12 Months

View Program
Liverpool John Moores University Logo
bestseller

Liverpool John Moores University

MS in Data Science

Dual Credentials

Master's Degree

18 Months

View Program
upGrad Logo

Certification

3 Months

View Program