A function is an object that is able to accept some sort of input, possibly modify it, and return some sort of output. In Python, a lambda function is a one-line shorthand for function. A simple lambda function might look like this:

add_two = lambda my_input: my_input + 2

So this code:

print(add_two(3)) print(add_two(100)) print(add_two(-2))

would print:

>>> 5 >>> 102 >>> 0

Let’s break this syntax down:

  1. The function is stored in a variable called add_two
  2. lambda declares that this is a lambda function (if you are familiar with normal Python functions, this is similar to how we use def to declare a function)
  3. my_input is what we call the input we are passing into add_two
  4. We are returning my_input plus 2 (with normal Python functions, we use the keyword return)

Let's write a lambda function that checks if a string is a substring of the string “This is the master string”.

is_substring = lambda my_string: my_string in "This is the master string"

So, the code:

print(is_substring('I')) print(is_substring('am')) print(is_substring('the')) print(is_substring('master'))

would print:

>>> False >>> False >>> True >>> True

We might want a function that will perform differently based on different inputs. Let’s say that we have a function check_if_A_grade that outputs 'Got an A!' if a grade is at least 90, and otherwise says you 'Did not get an A…'. So, the code:

print(check_if_A_grade(91)) print(check_if_A_grade(70)) print(check_if_A_grade(20))

would print:

>>> 'Got an A!' >>> 'Did not get an A...' >>> 'Did not get an A...'

We can do this using an if statement in our lambda function, with syntax that looks like:

<WHAT TO RETURN IF STATEMENT IS TRUE> if <IF STATEMENT> else <WHAT TO RETURN IF STATEMENT IS FALSE>

So this is what our check_if_A_grade function might look like:

check_if_A_grade = lambda grade: 'Got an A!' if grade >= 90 else 'Did not get an A...'

This is what this line of code does:

  1. Declare lambda function with an input called grade (lambda grade:)
  2. Return 'Got an A!' if this statement is true:
    grade >= 90
  3. Otherwise, return 'Did not get an A...' if this statement is not true:
    grade >= 90

Lambda functions only work if we're just doing a one line command. If we wanted to something longer, we'd need a more complex function.

Now you can make simple Python functions in one line!