Dictionaries and Unpacking Arguments in Python

Which function correctly sorts the list?

 

def f(val1=3, val2=4, val3=6):
    return val1 + val2 + val3

values = {"val1": 9, "val3":-1}
print(f(**values))

 

Programming is about using lower-level functionality to create higher-level functionality. In general, any programming language is a collection of functions that in turn build upon functions provided by the operating system. You must master the art of building your own code with the help of existing functionality. Do not reinvent the wheel!

Functions are generic code snippets that can be tailored to your needs via keyword arguments.
The puzzle shows a function that calculates the sum of three keyword arguments. The keyword arguments are initialized with a default value in case they are not defined by the function caller.
The puzzle introduces two concepts: dictionaries and unpacking keyword arguments.

1) Dictionaries are Python data structures, defined via the bracket notation {}, that store key-value pairs. Python dictionaries work like real-world dictionaries: the keys are the words and the values are the explanations. You access the explanation to a given word via the index table. Similarly, in a Python dictionary, you access the values using the method of indexing. The indices (or keys) can be strings, integers, or any other immutable data type.

2) An interesting twist in the puzzle is to deliver keyword arguments via a dictionary using the **-operator. The **-operator unpacks the key-value pairs in the dictionary and matches those with the keyword arguments. As the second keyword argument val2 is not declared in the dictionary, it is initialized to its default value.


Are you a master coder?
Test your skills now!

Related Video

Solution

12

 

Leave a Comment