DEV Community

Cover image for Python: What is a Lambda Function?
Adam Lombard
Adam Lombard

Posted on • Edited on

16 8

Python: What is a Lambda Function?

In Python, the lambda keyword is used to define an anonymous (i.e., nameless) function, using the following syntax:

lambda parameters: expression
Enter fullscreen mode Exit fullscreen mode

Assume we have the following list of fruits:

fruits = ['apple', 'orange', 'grape', 'lemon', 'mango', 'banana']
Enter fullscreen mode Exit fullscreen mode

Now imagine we need to filter our list to print only fruit names which are 5 characters long. We could do so by defining a named function to test word lengths, and then passing it (and our list of fruits) to filter():

def five_letter_words(word):
  if len(word) == 5:
    return True

five_letter_fruits = filter(five_letter_words, fruits)

for fruit in five_letter_fruits:
  print(fruit)
Enter fullscreen mode Exit fullscreen mode
apple
grape
lemon
mango
>>>
Enter fullscreen mode Exit fullscreen mode

Or, the same task can be accomplished directly in filter() using a lambda expression, without needing to define a separate named function:

five_letter_fruits = filter(lambda word: len(word) == 5, fruits)

for fruit in five_letter_fruits:
  print(fruit)
Enter fullscreen mode Exit fullscreen mode
apple
grape
lemon
mango
>>>
Enter fullscreen mode Exit fullscreen mode

Because lambda functions are Python expressions, they can be assigned to variables.

So, this:

add_two = lambda x, y: x+y
add_two(3, 5)
Enter fullscreen mode Exit fullscreen mode

Is equivalent to this:

def add_two(x, y):
  return x + y

add_two(3, 5)
Enter fullscreen mode Exit fullscreen mode

Was this helpful? Did I save you some time?

🫖 Buy Me A Tea! ☕️


Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (1)

Collapse
 
waylonwalker profile image
Waylon Walker • Edited

I learned the lesson of not binding arguments in dynamically created lambdas. I find creating lambdas inside of loops/list comprehension so useful, but it is easy to end up with a list of lamdas that all return the final result.

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs