What does the Double Star operator mean in Python?
Last Updated :
14 Mar, 2023
Double Star or (**) is one of the Arithmetic Operator (Like +, -, *, **, /, //, %) in Python Language. It is also known as Power Operator.
What is the Precedence of Arithmetic Operators?
Arithmetic operators follow the same precedence rules as in mathematics, and they are: exponential is performed first, multiplication and division are performed next ,followed by addition and subtraction.
Arithmetic operators priorities order in Decreasing Mode:
() >> ** >> * >> / >> // >> % >> + >> -
Uses of Double Star operator:
As Exponentiation Operator
For numeric data types, double-asterisk (**) is defined as an Exponentiation Operator:
Example:
Python3
a = 2
b = 5
c = a * * b
print (c)
z = 2 * ( 4 * * 2 ) + 3 * ( 4 * * 2 - 10 )
print (z)
|
Output:
32
50
As arguments in functions and methods
In a function definition, the double asterisk is also known **kwargs. They used to pass a keyword, variable-length argument dictionary to a function. The two asterisks (**) are the important element here, as the word kwargs is conventionally used, though not enforced by the language.
First, let’s simply print out the **kwargs arguments that we pass to a function. We’ll create a short function to do this:
Example:
Python3
def function( * * kwargs):
for key, value in kwargs.items():
print ( "The value of {} is {}" . format (key, value))
function(name_1 = "Shrey" , name_2 = "Rohan" , name_3 = "Ayush" )
|
Output:
The value of name_1 is Shrey
The value of name_2 is Rohan
The value of name_3 is Ayush
Now here is another example where we will pass additional arguments to the function to show that **kwargs will accept any number of arguments:
Python3
def function( * * kwargs):
for key, value in kwargs.items():
print ( "The value of {} is {}" . format (key, value))
function(
name_1 = "Ayush" ,
name_2 = "Aman" ,
name_3 = "Harman" ,
name_4 = "Babber" ,
name_5 = "Striver" ,
)
|
Output:
The value of name_1 is Ayush
The value of name_2 is Aman
The value of name_3 is Harman
The value of name_4 is Babber
The value of name_5 is Striver
The time complexity of the given Python program is O(n), where n is the number of key-value pairs in the input dictionary.
The auxiliary space complexity of the program is also O(n), as the program stores the input dictionary in memory while iterating over it.
Conclusion:
Using **kwargs provides us with the flexibility to use keyword arguments in our program. When we use **kwargs as a parameter, we don’t need to know how many arguments we would eventually like to pass to a function. Creating functions that accept **kwargs are best used in situations where you expect that the number of inputs within the argument list will remain relatively small.
Please Login to comment...