Skip to main content

Section 11.13 Write Code Questions

Checkpoint 11.13.1.

Write a function called tup_creation that takes in two integer parameter, start and end, and returns a tuple with all the values between start (inclusive) and end (non-inclusive). For example, tup_creation(-8,3) would return (-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2) and tup_creation(10,3) would return (10, 9, 8, 7, 6, 5, 4).
Solution.
Write a function called tup_creation that takes in two integer parameter, start and end, and returns a tuple with all the values between start (inclusive) and end (non-inclusive). For example, tup_creation(-8,3) would return (-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2) and tup_creation(10,3) would return (10, 9, 8, 7, 6, 5, 4).
def tup_creation(start, end):
    lst = []
    if start > end:
        for i in range(start,end,-1):
            lst.append(i)
    else:
        for i in range(start,end):
            lst.append(i)
    lst = tuple(lst)
    return lst
<div class="runestone sqcontainer %(optclass)s"> <div data-component="selectquestion" id=tuple_writecode2 data-questionlist='tup_writecode2, tup_writecode2_pp' data-toggleoptions="toggle, lock" data-togglelabels="togglelabels:" data-limit-basecourse=true> <p>Loading a dynamic question ...<br/>Selecting from: tup_writecode2, tup_writecode2_pp</p> </div> </div>

Checkpoint 11.13.2.

Write a function called find_majors that takes in a dictionary as a parameter, majors, that has a major code as the key and the name of a major as the value. Return a list of tuples of size two, in which the first element of the tuple is the major code and the second element of the tuple is the name of the major. For example, find_major({3084: 'Computer Science', 3025: 'Electrical Engineering', 3020: 'Computer Engineering', 3027: 'Cybersecurity', 3068: 'Biometric Systems Engineering'}) would return [(3084, 'Computer Science'), (3025, 'Electrical Engineering'), (3020, 'Computer Engineering'), (3027, 'Cybersecurity'), (3068, 'Biometric Systems Engineering')].
Solution.
Write a function called find_majors that takes in a dictionary as a parameter, majors, that has a major code as the key and the name of a major as the value. Return a list of tuples of size two, in which the first element of the tuple is the major code and the second element of the tuple is the name of the major. For example, find_major({3084: 'Computer Science', 3025: 'Electrical Engineering', 3020: 'Computer Engineering', 3027: 'Cybersecurity', 3068: 'Biometric Systems Engineering'}) would return [(3084, 'Computer Science'), (3025, 'Electrical Engineering'), (3020, 'Computer Engineering'), (3027, 'Cybersecurity'), (3068, 'Biometric Systems Engineering')].
def find_major(dictionary_val):
    ls1 = []
    ls2 = []
    for key, val in dictionary_val.items():
        ls1.append(key)
        ls2.append(val)
    list_of_tup = list(zip(ls1, ls2))
    return list_of_tup
<div class="runestone sqcontainer %(optclass)s"> <div data-component="selectquestion" id=tuple_writecode4 data-questionlist='tup_writecode4, tup_writecode4_pp' data-toggleoptions="toggle, lock" data-togglelabels="togglelabels:" data-limit-basecourse=true> <p>Loading a dynamic question ...<br/>Selecting from: tup_writecode4, tup_writecode4_pp</p> </div> </div>

Checkpoint 11.13.3.

Write a function called dict_transform that takes in one dictionary parameter, dict, which returns a tuple of tuples. The inner tuple should have the first element as the key of the dict and the second element should have the value of the dict. Do not use the keys() or values() methods. For example, dict_transform({'Rattata': 19, 'Machop': 66, 'Seel': 86, 'Volbeat': 86, 'Solrock': 126}) should return (('Rattata', 19), ('Machop', 66), ('Seel', 86), ('Volbeat', 86), ('Solrock', 126)).
Solution.
Write a function called dict_transform that takes in one dictionary parameter, dict, which returns a tuple of tuples. The inner tuple should have the first element as the key of the dict and the second element should have the value of the dict. Do not use the keys() or values() methods. For example, dict_transform({'Rattata': 19, 'Machop': 66, 'Seel': 86, 'Volbeat': 86, 'Solrock': 126}) should return (('Rattata', 19), ('Machop', 66), ('Seel', 86), ('Volbeat', 86), ('Solrock', 126)).
def dict_transform(dict):
    lst_keys = []
    lst_vals = []
    for key, val in dict.items():
        lst_keys.append(key)
        lst_vals.append(val)
    zipped_tup= tuple(zip(lst_keys, lst_vals))
    return zipped_tup
<div class="runestone sqcontainer %(optclass)s"> <div data-component="selectquestion" id=tuple_writecode6 data-questionlist='tup_writecode6, tup_writecode6_pp' data-toggleoptions="toggle, lock" data-togglelabels="togglelabels:" data-limit-basecourse=true> <p>Loading a dynamic question ...<br/>Selecting from: tup_writecode6, tup_writecode6_pp</p> </div> </div>

Checkpoint 11.13.4.

Write the function mod_tuples which takes a list of tuples, tup_list and returns a copy where the last element in each tuple is modified to be 100. For example, mod_tuples([(3,4), (20, -3, 2)]) returns [(3,100), (20, -3, 100)].
Solution.
Write the function mod_tuples which takes a list of tuples, tup_list and returns a copy where the last element in each tuple is modified to be 100. For example, mod_tuples([(3,4), (20, -3, 2)]) returns [(3,100), (20, -3, 100)].
def mod_tuples(tup_list):
    # Access the last element of each list (-1) and replace with 100 in each element of the tuple
    updated_list = [tup[:-1] + (100,) for tup in tup_list]
    # return the updated list
    return updated_list
<div class="runestone sqcontainer %(optclass)s"> <div data-component="selectquestion" id=tuple_writecode8 data-questionlist='tup_writecode8, tup_writecode8_pp' data-toggleoptions="toggle, lock" data-togglelabels="togglelabels:" data-limit-basecourse=true> <p>Loading a dynamic question ...<br/>Selecting from: tup_writecode8, tup_writecode8_pp</p> </div> </div>

Checkpoint 11.13.5.

Write a function list_link that accepts two lists, lst1 and lst2 and returns a dictionary with the first list as the key and the second list as the value. For example, list_link(['what', 'do', 'you', 'do'], [1,2,3,4]) should return {'what': 1, 'do': 4, 'you': 3}.
Solution.
Write a function list_link that accepts two lists, lst1 and lst2 and returns a dictionary with the first list as the key and the second list as the value. For example, list_link(['what', 'do', 'you', 'do'], [1,2,3,4]) should return {'what': 1, 'do': 4, 'you': 3}.
# Define function with 2 lists as arguments
def list_link(lst1, lst2):
    # Create dictionary
    diction = {}
    # Create counter variable to count iterations
    counter = 0
    # Create condition for when lists are the same length
    if len(lst1) == len(lst2):
        # iterate through item in list1
        for i in lst1:
            # Add that item to dictionary with its place in list2
            diction[i] = lst2[counter]
            # Increment counter
            counter += 1
    # Return the dictionary
    return diction
<div class="runestone sqcontainer %(optclass)s"> <div data-component="selectquestion" id=tuple_writecode10 data-questionlist='tup_writecode10, tup_writecode10_pp' data-toggleoptions="toggle, lock" data-togglelabels="togglelabels:" data-limit-basecourse=true> <p>Loading a dynamic question ...<br/>Selecting from: tup_writecode10, tup_writecode10_pp</p> </div> </div>