The CTP Book

A book for teaching Computational Thinking and Programming skills to people with a background in the Humanities

View on GitHub

Development - Intermediate, exercise 4

Text

Write the body of the Python function def algorithm(dictionary, key_list) that takes a dictionary and a list of strings as input and checks if each string in the list is a key of a pair in the dictionary. All the values of the pairs in the dictionary that have been matched by any key contained in the input list are added to a set, that is returned at the end of the algorithm.

Solution

# Test case for the function
def test_algorithm(dictionary, key_list, expected):
    result = algorithm(dictionary, key_list)
    if expected == result:
        return True
    else:
        return False


# Code of the function
def algorithm(dictionary, key_list):
    result = set()

    for key in key_list:
        if key in dictionary:
            result.add(dictionary[key])

    return result


# Tests
print(test_algorithm({"a": 1, "b": 2, "c": 3}, ["a", "c"], {1, 3}))
print(test_algorithm({"a": 1, "b": 2, "c": 3}, ["d", "e"], set()))
print(test_algorithm({}, ["a", "c"], set()))

Additional material

The runnable Python file is available online.