Page 218 -
P. 218

dictionary data




                             It’s time to apply what you now know about Python’s dictionary to your code. Let’s continue to
                             concentrate on Sarah’s data for now. You were to strike out the code that you no longer needed
                             and replace it with new code that uses a dictionary to hold and process Sarah’s data.
                             def sanitize(time_string):
                                 if '-' in time_string:
                                     splitter = '-'
                                 elif ':' in time_string:
                                     splitter = ':'
                                 else:
                                     return(time_string)
                                 (mins, secs) = time_string.split(splitter)
                                 return(mins + '.' + secs)


                             def get_coach_data(filename):
                                 try:
                                     with open(filename) as f:
                                         data = f.readline()
                                     return(data.strip().split(','))
                                 except IOError as ioerr:
                                     print('File error: ' + str(ioerr))            You don’t need this
                                                                                   code anymore.
                                     return(None)


                             sarah = get_coach_data('sarah2.txt')
                             (sarah_name, sarah_dob) = sarah.pop(0), sarah.pop(0)
                             print(sarah_name + "'s fastest times are: " +
               Create an empty           str(sorted(set([sanitize(t) for t in sarah]))[0:3]))
               dictionary.   sarah_data = {}

                             sarah_data[‘Name’] = sarah.pop(0)           Populate the dictionary with the data by
                             sarah_data[‘DOB’] = sarah.pop(0)           the dictionary keys..
                                                                        associating the data from the file with
                             sarah_data[‘Times’] = sarah

                             print(sarah_data[‘Name’] + “’s fastest times are: “ +
                                     str(sorted(set([sanitize(t) for t in sarah_data[‘Times’]]))[0:3]))
                      Refer to the dictionary when
                      processing the data.



           182    Chapter 6
   213   214   215   216   217   218   219   220   221   222   223