Lambda, Map, and Filter in Python
A look at the syntax and usage of each function

Today’s piece covers using lambda, map, and filter functions in Python. We’ll be covering the basic syntax of each and walking through some examples to familiarize yourself with using them. Let’s get started!
Lambda
A lambda
operator or lambda
function is used for creating small, one-time, anonymous function objects in Python.
Basic Syntax
lambda arguments : expression
A lambda
operator can have any number of arguments but can have only one expression. It cannot contain any statements and returns a function object which can be assigned to any variable.
Example
Let’s look at a function in Python:
The above function’s name is add
, it expects two arguments x
and y
and returns their sum.
Let’s see how we can convert the above function into a lambda
function:
In lambda x, y: x + y;
x
and y
are arguments to the function and x + y
is the expression that gets executed and its values are returned as output.
lambda x, y: x + y
returns a function object which can be assigned to any variable, in this case, the function object is assigned to the add
variable.
If we check the type of add
, it is a function
.
More importantly, lambda
functions are passed as parameters to functions that expect function object as parameters such as map
, reduce
, and filter
functions.
Map
Basic Syntax
map(function_object, iterable1, iterable2,...)
map
functions expect a function object and any number of iterables
, such as list
, dictionary
, etc. It executes the function_object
for each element in the sequence and returns a list
of the elements modified by the function object.
Example
In the above example, map
executes the multiply2
function for each element in the list, [1, 2, 3, 4]
, and returns [2, 4, 6, 8]
.
Let’s see how we can write the above code using map
and lambda
.
Just one line of code!
Iterating Over a Dictionary Using Map and Lambda
In the above example, each dict
of dict_a
will be passed as a parameter to the lambda
function. The result of the lambda
function expression for each dict
will be given as output.
Multiple Iterables to the Map Function
We can pass multiple sequences to the map
functions as shown below:
Here, each i^th
element of list_a
and list_b
will be passed as an argument to the lambda
function.
In Python3, the map
function returns an iterator
or map object
which gets lazily evaluated, similar to how the zip
function is evaluated. Lazy evaluation is explained in more detail in the zip
function article.
We can’t access the elements of the map object
with index nor we can use len()
to find the length of the map object
.
We can, however, force convert the map
output, i.e. the map object
, to list
as shown below:
Filter
Basic Syntax
filter(function_object, iterable)
The filter
function expects two arguments: function_object
and an iterable. function_object
returns a boolean value and is called for each element of the iterable
. filter
returns only those elements for which the function_object
returns True
.
Like the map
function, the filter
function also returns a list of elements. Unlike map
, the filter
function can only have one iterable
as input.
Example
Even number using filter
function:
Filter list
of dicts
:
Similar to map
, the filter
function in Python3 returns a filter object
or the iterator which gets lazily evaluated. We cannot access the elements of the filter object
with index, nor can we use len()
to find the length of the filter object
.
If you like my articles and find them useful, feel free to buy me a coffee. Thanks!

To get updates for my new stories, follow me on medium and Twitter
Other articles