DESCRIPTION Students: Please keep in mind the OMSI rules. Save your files often, make sure OMSI fills your entire screen at all times, etc. Remember that clicking CopyQtoA will copy the entire question box to the answer box. In questions involving code which will PARTIALLY be given to you in the question specs, you may need add new lines. There may not be information given as to where the lines should be inserted. MAKE SURE TO RUN THE CODE IN PROBLEMS THAT INVOLVE CODE! QUESTION -ext .py -run 'python omsi_answer1.py The filter() function works on sequences. How about dictionaries? Here you will write a function that does filtering for dictionaries. In dfilter(f,d), d is the dictionary and in f(k,dk), k is a key and dk is d[k]. Fill in the blanks. def dfilter(f,d): dc = {'abc':5,'de':12,'f':13} print dfilter(lambda k,dk: dk > 5,dc) # {'de': 12, 'f': 13} print dfilter(lambda k,dk: dk > 5 and 'e' in k,dc) # {'de': 12} QUESTION -ext .py -run 'python omsi_answer2.py Here you will write a function that reports all non-ASCII bytes in a file. The return value is a Python list of ordered pairs (u,v), with u being the byte's position in the file, and v being the value of the byte in hex, i.e. base 16. (In the example below, 200 = 12*16+8, c meaning 12.) For full credit, your code must be loop-free. (You may find zip() useful.) Fill in the blanks: def od(fileName): # test case s = 'abc\n' + 'de' + chr(200) + 'f\n' g = open('test','wb') g.write(s) g.close() print od('test') # output will be [(6, '\xc8')]