## DEV Community is a community of 554,498 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# 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
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

## Discussion  Ben Sinclair

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"]))
`````` Vicki (she/her)

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? Ben Sinclair

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)
``````