# Unpacking dictionaries is the opposite of packing them. It can be used if you have an existing dictionary that you would like to send to a function.

# Consider this code:

teacher = {
  'name':'Ashley',
  'job':'Instructor',
  'topic':'Python'
}

def print_teacher(name, job, topic):
    print(name)
    print(job)
    print(topic)


# First, we have a dictionary called teacher that holds three key:value pairs: name, job, and topic, each with corresponding values.

# Then, we have a function called print_teacher that receives three arguments, name, job, and topic.

# To pass the data from the teacher dictionary to this function, we can use unpacking to easily and quickly extrapolate the data into a format the function will accept.

# To do that, we use a function call where the passed argument is **teacher.

# print_teacher(**teacher)
# This ** unpacks all the key:value pairs in the teacher dictionary into three keyword arguments, which are then accepted by the function into the three corresponding parameters.