loading...

# Charm the Python: Lambdas

Vicki (she/her) Updated on ・2 min read

If coding tutorials with math examples are the bane of your existence, keep reading. This series uses relatable examples like dogs and cats.

## Lambda Function

Lambda functions are unnamed functions. This means it is not defined like a normal function.

Defining lambdas is similar to defining a regular function, but it has a different syntax.

# syntax of a function
def name(args):

# syntax of lambda function
lambda args: expression  # can only have one expression
lambda args, args, args: expression  # may have multiple parameters


Note: Lambdas can only handle expressions. Expressions must have return values like numbers, True, and False

### Lambda, by Itself

# A regular function
def add_two_numbers(a, b):
return a + b

# Same function written as a lambda function
add_two_numbers = lambda a, b: a + b


Notice, both take args a and b, then add them together. The only difference is that the first one is defined as a function.

For my math loathing pals

# A regular function
def generate_full_name(first_name, last_name):
return first_name + ' ' + last_name

# Same function written as a lambda function
generate_full_name = lambda first_name, last_name: first_name + ' ' + last_name


### Lambda function inside other function

Lambda functions can be used inside of other functions.

# future home of an example
# if you could help me with a simple example that would be badass
# a non-math example would be appreciated forever
# simple math would be cool too (something like 2+2)


#### Further Investigation

If all of this makes sense to you and you'd like a little more fanciness and excitement, lookup 'Self invoking lambda function'

Note: Lambdas are not something I'm really comfortable with. For more details check out this thorough article about Lambdas in Python.

Series based on

Posted on by:

### Vicki (she/her)

Vicki was once a manager of aircraft maintenance and is now charming Python. She coded #VetsWhoCode bot & Code Questions bot. When Vicki isn't petting her cat, she’s throwing a ball for her dogs.

### Discussion

For your example of a "function inside another function", do you mean something like this?

my_list = (
{
"name": "Ben",
"age": "99"
},
{
"name": "Antigone",
"age": "49"
},
{
"name": "Jonas",
"age": "10"
},
{
"name": "Samantha",
"age": "52"
},
{
"name": "Vicki",
"age": "22"
}
)

print (sorted(my_list, key = lambda x: x["age"]))


I think this is what I was referring to, but I’m not super sure. All the examples I saw were using functions like map(), filter(), and sort()

I’ve never seen key used before. Help me out, what is x doing in this?

If I’m reading this correctly, it’s just sorting these key-value pairs by age, right?

yes, array.sort and sorted take a named parameter in Python 3 (I had to learn this a couple of days ago!) which is run as a callback, once per key, immediately before sorting the elements. So that example calls x: x["age"] on every element first.
It's the equivalent of this:

sort([x["age"] for x in my_list])


and this:

def by_age(x):
return x["age"]

sort(my_list, key = by_age)