""" For this part of the problem set you will be generating your own functions to achieve a specific goal. DO NOT use while loops for any of the problems here """ """ One. Create a function print_x_times which will print a first argument second argument number of times. Do not concatenate or extend the string, you should call print second argument number of times. """ """ Two. Create a function sum_iteratable which takes in any iterable (list, tuple, set) and returns the sum of all elements. """ """ Three. Create a function length which counts the number of elements in an iterable without using the built-in len. """ """ Four. Create a function product_range which takes in two integers and returns the product of all the integers between the first argument and second argument (not including the second argument). e.g. product_range(2,5) = 2 * 3 * 4. """ """ Five. Create a function weighted_sum which takes a list and returns the sum of all the numbers in the list multiplied by their index. e.g. [5, 12, 3] = 5 * 0 + 12 * 1 + 3 * 2. """ """ Six. Create a function remove_duplicates which takes in a list and returns a new list with all duplicates removed. Use a Set. """ """ Seven. Create a function count_dic_items which takes a list of tuples of string-and-numbers, e.g. ("honda", 5), and returns a dictionary with keys as the first tuple element and as values the sum of all tuple second element's with the exact tuple first element key. e.g. [("honda", 5), ("kia", 3), ("honda", 2)] -> {"honda": 7, "kia": 3} """ """ Eight. Create a function process_dic which takes in a dictionary and returns a tuple with the first element being the average of odd valued keys and the second being the median of even valued keys as appearing. e.g. {"0": 1, "9": 2, "4": 3, "13": 4, "23": 5} -> (11/3, 2). """ """ Nine. Create a function perform_op which takes in a list and a function and returns the sum of applying the function to each element in the list. e.g. perform_op([1,2,3], lambda x: x*2) -> 1*2 + 2*2 + 3*2. """ """ Ten. Given a list of alternating string and integer values create a function combine which return a new list of tuples where idx 0 of tuple would be index n of list and idx 1 of tuple n+1. e.g. combine(["apple", 3.99, "banana", 1.99]) -> [("apple", 3.99), ("banana", 1.99)] """