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 :
lst = [x * * 2 for x in range ( 1 , 11 ) if x % 2 = = 1 ] print (lst) |
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:
lst = list ( map ( lambda x: x * * 2 , range ( 1 , 5 ))) print (lst) |
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 :
# 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) |
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]