Open In App

Python | Passing dictionary as keyword arguments

Improve
Improve
Like Article
Like
Save
Share
Report

Many times while working with Python dictionaries, due to advent of OOP Paradigm, Modularity is focussed in different facets of programming. Hence there can be many use cases in which we require to pass a dictionary as argument to a function. But this required the unpacking of dictionary keys as arguments and it’s values as argument values. Let’s discuss a method in which this can be performed.

 Method : Using ** ( splat ) operator This operator is used to unpack a dictionary, and while passing in a function this can possibly unpack a dictionary and achieve the required task of mapping the keys to arguments and it’s values to argument values. 

Python3




# Python3 code to demonstrate working of
# Passing dictionary as keyword arguments
# Using ** ( splat ) operator
 
# Helper function to demo this task
def test_func(a = 4, b = 5):
    print("The value of a is : " + str(a))
    print("The value of b is : " + str(b))
 
# initializing dictionary
test_dict = {'a' : 1, 'b' : 2}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# Testing with default values
print("The default function call yields : ")
test_func()
 
print("\r")
 
# Passing dictionary as keyword arguments
# Using ** ( splat ) operator
print("The function values with splat operator unpacking : ")
test_func(**test_dict)


Time Complexity: O(1)

Space Complexity: O(n) -> n = number of key-value pairs

Output : 

The original dictionary is : {'a': 1, 'b': 2}
The default function call yields : 
The value of a is : 4
The value of b is : 5

The function values with splat operator unpacking : 
The value of a is : 1
The value of b is : 2

Method 2 : Single argument to the function and then unpack it inside the function

 step-by-step approach 

Define a function test_func that takes a single argument arg_dict.
Inside the function, use the get() method of dictionaries to retrieve the values of a and b from the arg_dict dictionary. If the keys a or b are not present in the dictionary, use default values of 4 and 5, respectively.
Print the values of a and b.
Define a dictionary test_dict with keys a and b and corresponding values.
Print the original dictionary test_dict.
Call the function test_func with an empty dictionary as an argument to test with default values.
Print a newline character for better readability.
Call the function test_func with the test_dict dictionary as an argument and unpack the dictionary inside the function.

Python3




# Python3 code to demonstrate working of
# Passing dictionary as single argument and unpacking inside function
 
# Helper function to demo this task
def test_func(arg_dict):
    a = arg_dict.get('a', 4)
    b = arg_dict.get('b', 5)
    print("The value of a is: " + str(a))
    print("The value of b is: " + str(b))
 
# initializing dictionary
test_dict = {'a': 1, 'b': 2}
 
# printing original dictionary
print("The original dictionary is: " + str(test_dict))
 
# Testing with default values
print("The default function call yields:")
test_func({})
 
print("\r")
 
# Passing dictionary as single argument and unpacking inside function
print("The function values with dictionary unpacking:")
test_func(test_dict)


Output

The original dictionary is: {'a': 1, 'b': 2}
The default function call yields:
The value of a is: 4
The value of b is: 5

The function values with dictionary unpacking:
The value of a is: 1
The value of b is: 2

Time complexity: O(1) as the dictionary is unpacked inside the function and does not require any additional time.

Auxiliary space: O(1) as we are not creating any new data structures, but only retrieving values from the existing dictionary.



Last Updated : 05 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads