#FutureSTEMLeaders - Wiingy's $2400 scholarship for School and College Students

Apply Now

Python

Python Lambda

Written by Rahul Lath

Updated on: 07 Dec 2023

Python Tutorials

1Python Overview2Python Tutorial: A Comprehensive Guide for Beginners3Python Keywords and Identifiers4Download and Installation Guide for Python5Python Syntax (With Examples)6Python Comments7Python Variables (With Examples)8Taking Input in Python9Output in Python10File Handling in Python (Files I/O)11Python Operators (With Examples)12Ternary Operators in Python13Operator Overloading in Python14Division Operators in Python15Input from Console in Python16Output Formatting in Python17Any All in Python18Difference between Python Equality and Identity Operators19Python Membership and Identity Operators20Python Data Types21Python Dictionary22Control Flow in Python23Python Arrays24Looping Techniques in Python25Chaining Comparison Operators in Python26Python Functions27Python Strings28Python Numbers29Python Sets30Python For Loops31Python While Loops32Python Break Statement:33Python Continue Statement34Python pass Statement35Args and Kwargs in Python36Python Generators37Python Lambda38Global and Local Variables in Python39Global Keyword in Python40Python Closures41Python Decorators42Memoization using Decorators in Python43Constructors in Python44Encapsulation in Python45Inheritance in Python46Polymorphism in Python47Class Method vs Static Method in Python48Python Exception Handling49First Class Functions in Python50Python Classes And Objects51Errors and Exceptions in Python52Built-In Exceptions in Python53Append to file in Python54File Handling in Python55Destructors in Python56User-Defined Exceptions in Python57Class or Static Variable in Python58Python Tuples59Reading File in Python60Writing File in Python61Opening and Closing Files in Python62NZEC error in Python63Operator Function64Webscraper Python Beautifulsoup65Python Pyramid Patterns66Python Start Patterns67Web Crawler in Python68Build a Python Youtube Downloader69Currency Convertor in Python70Python Website Blocker
tutor Pic

What is Python Lambda?

A lambda function in Python is a brief anonymous function with a single expression and unlimited number of arguments. It is called anonymous because it doesn’t have a name like a normal function, and it is defined using the keyword “lambda”.

Lambda functions are primarily used to build compact functions that can be passed as arguments to higher-order functions like map(), filter(), and reduce(). When a function is only required briefly and a named function does not need to be defined, lambda functions are also used.

Python lambda functions are crucial because they help make code more readable and concise. They also help to reduce the amount of code that needs to be written.

Syntax of Python Lambda functions

The syntax of a lambda function is quite simple. It consists of the keyword “lambda”, followed by the arguments, a colon, and the expression. The general syntax of a lambda function is as follows:

lambda arguments: expression

Code example of a simple lambda function:

Here is an example of a simple lambda function that adds two numbers:

add = lambda x, y: x + y print(add(2, 3)) # Output: 5

In the above example, the lambda function takes two arguments x and y, and returns their sum.

How Python Lambda functions work

Anonymous functions, or functions without a name, are created using lambda functions. When a function is only required temporarily and a named function does not need to be defined, anonymous functions can be useful.

A. Code example of a lambda function in action:

Here is an example of a lambda function being used with the built-in map() function to square a list of numbers:

numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x ** 2, numbers)) print(squared) # Output: [1, 4, 9, 16, 25]

In the above example, the lambda function takes one argument x, and returns its square. The map() function applies the lambda function to each element in the numbers list, and returns a new list with the squared values.

B. Comparison with regular functions:

Lambda functions can take arguments and return values, just like regular functions can. The main difference is that lambda functions are anonymous and are defined using the keyword “lambda”. Regular functions, on the other hand, are named and are defined using the keyword “def”.

Here is an example of a regular function that adds two numbers:

def add(x, y): return x + y print(add(2, 3)) # Output: 5

In this example, the add() function takes two arguments x and y, and returns their sum. The syntax is slightly different from the lambda function, but the result is the same.

Use cases of lambda functions

A. Simplifying code and reducing function definitions:

Code can be made simpler and with fewer function definitions by using lambda functions. To calculate the square of a number, for instance, a lambda function can be used rather than defining a separate function:

square = lambda x: x ** 2 print(square(4)) # Output: 16

B. Using lambda functions in higher-order functions:

Higher-order functions like map(), filter(), and reduce() can take lambda functions as arguments. For example, a lambda function can be used with map() to convert a list of strings to uppercase:

strings = ['apple', 'banana', 'cherry'] uppercase = list(map(lambda x: x.upper(), strings)) print(uppercase) # Output: ['APPLE', 'BANANA', 'CHERRY']

C. Creating inline functions for quick calculations:

Inline functions for quick calculations can be made using lambda functions. For example, a lambda function can be used with sorted() to sort a list of tuples by the second item:

tuples = [('John', 50), ('Alice', 30), ('Bob', 40)] sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples) # Output: [('Alice', 30), ('Bob', 40), ('John', 50)]

D. Code examples of lambda functions in different scenarios:

Lambda functions can be used in various scenarios, such as sorting, filtering, and mapping lists, as well as in GUI programming and web development. Here are a few examples:

# Sorting a list of dictionaries by a specific key people = [{'name': 'John', 'age': 30}, {'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 40}] sorted_people = sorted(people, key=lambda x: x['age']) print(sorted_people) # Output: [{'name': 'Alice', 'age': 20}, {'name': 'John', 'age': 30}, {'name': 'Bob', 'age': 40}] # Filtering a list of even numbers numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4, 6] # Mapping a list of numbers to their squares numbers = [1, 2, 3, 4, 5] squares = list(map(lambda x: x ** 2, numbers)) print(squares) # Output: [1, 4, 9, 16, 25]

Limitations of lambda functions

A. Difficulty in debugging and testing lambda functions:

Since lambda functions are anonymous and don’t have names, it can be hard to find bugs and test them. This can make it challenging to isolate and fix errors in the code.

B. Inability to use statements and multiple expressions in lambda functions:

Lambda functions can only have one expression. They can’t include statements or more than one expression. This can make it hard for lambda functions to do complicated tasks. 

C. Code examples of lambda function misuse:

Here are a few examples of lambda function misuse:

/code start /# Incorrect use of a lambda function with multiple expressions invalid = lambda x, y: x + y; print(invalid(2, 3)) # Output: 5 # Incorrect use of a lambda function with a statement invalid = lambda x: print(x); invalid('hello') # Output: None 

Written by

Rahul Lath

Reviewed by

Arpit Rankwar

Share article on

tutor Pic
tutor Pic