Lambda functions in Python

Python programming logo

An overview and examples of using LAMBDA functions in Python.

A LAMBDA function is a small function written on one line of code.

In Python, a lambda function looks like this:

lambda x : x + x

  • It’s referred to as an ‘anonymous function’ because it is not ‘named’, i.e. not assigned to a named object/variable.
  • It’s a short term function because it’s only used once where it’s defined, and can’t be called elsewhere in the script or from another script.
  • A lambda function can take multiple arguments but only one expression.
The components of a lambda function are:
  • the word lambda
  • its argument(s), e.g. x, y
  • a colon :
  • the expression (operation) to perform on the arguments. This is equivalent to the ‘body’ of a function.

lambda x : x + x

… is equivalent to the defined adder() function below:

def adder(x):

return x + x


Nest a lambda function inside a named function

Lambda functions are often used within the scope of a larger function. We can nest a lambda function inside a named function.

Below we transform our adder() function to include an input y and the addition expression (+).

def adder(x):

return lambda y: x + y

  • The argument of adder() is x
  • The argument of the lambda function is y. The function is also taking the argument x from the parent function adder().
  • The lambda expression is x + y.
  • The output of adder() is the result of the lambda operation.

Lambda example – create a new column in Python by splitting another column’s values

In this example below we create a new column taking the first word from a string in another column, e.g. extracting a person’s first name from their full name. In this example:

  • df is our dataframe
  • Full_name is the name of the existing column
  • First_name is the name of the new column.
Full_nameFirst_name
Peter PanPeter
Captain HookCaptain

df[“First_name”] = df [“Full_name”].apply(lambda x: x.split(” “)[0])

  • The nested lambda function is: lambda x: x.split(" ")[0])
  • Input x string is split into words separated by a space " " and the first element [0] of the resulting output is selected.
  • The apply function is used to iterate through the rows of the table df.

Python Lambda – filter a list based on values

In the example below, the lambda function is used to iterate through the list and return any values that are greater than 5. The output is assigned to the new variable new_list.

my_list = [15, -3, 5, 0, 6, 22]

new_list = list(filter(lambda x: x > 5, my_list))

print(new_list)

#[15, 6, 22]


Pros and cons of using Lambda functions

What’s good about Lambda functions

  • Good for creating simple logical operations.
  • The conciseness of the lambda function structure can make code easy to read.
  • If you just need to run a function once in your code, e.g. a quick data transformation, or string split, lambda functions are just the job..

What’s not so good about Lambda functions

  • You can only carry out one operation or expression in a lambda function, so the function cannot involve complex logic.
  • Lambda functions can’t include default values for arguments.
  • Lambda functions can’t span more than one line.
  • Keep it simple – if it’s not clear what the function is doing use a named function instead.
  • Well written code will include docstrings – text used to document what a function, module, class or method does – which can’t be added to lambda functions. See more about docstrings here: https://peps.python.org/pep-0257/