In this article, we will discuss the difference between normal def defined function and lambda in Python.
Def keyword
In python, def defined functions are commonly used because of their simplicity. The def defined functions do not return anything if not explicitly returned whereas the lambda function does return an object. The def functions must be declared in the namespace. The def functions can perform any python task including multiple conditions, nested conditions or loops of any level, printing, importing libraries, raising Exceptions, etc.
Example:
Python3
# Define function to calculate cube root # using def keyword def calculate_cube_root(x): return x * * ( 1 / 3 ) # Call the def function to calculate cube # root and print it print (calculate_cube_root( 27 )) # Define function to check if language is present in # language list using def keyword languages = [ 'Sanskrut' , 'English' , 'French' , 'German' ] def check_language(x): if x in languages: return True return False # Call the def function to check if keyword 'English' # is present in the languages list and print it print (check_language( 'English' )) |
Output:
3.0 True
Lambda keyword
The lambda functions can be used without any declaration in the namespace. The lambda functions defined above are like single-line functions. These functions do not have parenthesis like the def defined functions but instead, take parameters after the lambda keyword as shown above. There is no return keyword defined explicitly because the lambda function does return an object by default.
Example:
Python3
# Define function using lambda for cube root cube_root = lambda x: x * * ( 1 / 3 ) # Call the lambda function print (cube_root( 27 )) languages = [ 'Sanskrut' , 'English' , 'French' , 'German' ] # Define function using lambda l_check_language = lambda x: True if x in languages else False # Call the lambda function print (l_check_language( 'Sanskrut' )) |
Output:
3.0 True
Table of Difference Between def and Lambda
def defined functions |
lambda functions |
---|---|
Easy to interpret |
Interpretation might be tricky |
Can consists of any number of execution statements inside the function definition |
The limited operation can be performed using lambda functions |
To return an object from the function, return should be explicitly defined |
No need of using the return statement |
Execution time is relatively slower for the same operation performed using lambda functions |
Execution time of the program is fast for the same operation |
Defined using the keyword def and holds a function name in the local namespace |
Defined using the keyword lambda and does not compulsorily hold a function name in the local namespace |