Difference between List comprehension and Lambda in Python

List comprehension: List comprehension is an elegant way to define and create a list in python. We can create lists just like mathematical statements and in one line only. The syntax of list comprehension is easier to grasp. A list comprehension generally consists of these parts :

  • Output expression,
  • Input sequence,
  • A variable representing a member of the input sequence and
  • An optional predicate part.
List = [expression(i) for i in another_list if filter(i)]

Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

lst  =  [x ** 2  for x in range (1, 11)   if  x % 2 == 1]
print(lst)

chevron_right


Output:

[1, 9, 25, 49, 81]

In the above example,

  • x ** 2 is the expression.
  • range (1, 11) is input sequence or another list.
  • x is the variable.
  • if x % 2 == 1 is predicate part.

Lambda: In Python, anonymous function means that a function is without a name. As we already know the def keyword is used to define the normal functions and the lambda keyword is used to create anonymous functions. It has the following syntax:



Syntax:

lambda arguments : expression

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

lst = list(map(lambda x: x**2, range(1, 5)))
print(lst)

chevron_right


Output:

[1, 4, 9, 16]

The difference between Lambdas and List Comprehension

List Comprehension is used to create lists, Lambdas are functions that can process like other functions and thus return values or list.
Example :

filter_none

edit
close

play_arrow

link
brightness_4
code

# list from range 0 to 10
list_ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list_)
   
# lambda function
lambda_list = list(map(lambda x: x * 2, list_))
  
# Map basically iterates every element
# in the list_ and returns the lambda 
# function result
print(lambda_list)
   
# list comprehension
list_comp = [x * 2 for x in list_]
print(list_comp)

chevron_right


Output:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.