code: def get_index(table, field_name, op, value):
      ''' 
      Returns the index of the first list entry that matches. If no matches
      are found, it returns None
      NOTE: it is not returning a list. It is returning an integer in range 0..LEN(target)
      NOTE: both 'None' and 0 evaluate as False in python. So, if you are checking for a
         None being returned, be explicit. "if myindex==None:" not simply "if not myindex:"
      '''
      counter = 0
      for row in table:
          dict_row = convert_to_dict(row)
          if do_op(dict_row.get(field_name, None), op, value):
              return counter
          counter += 1
      return Nonf get_index(table, field_name, op, value):
      ''' 
      Returns the index of the first list entry that matches. If no matches
      are found, it returns None
      NOTE: it is not returning a list. It is returning an integer in range 0..LEN(target)
      NOTE: both 'None' and 0 evaluate as False in python. So, if you are checking for a
         None being returned, be explicit. "if myindex==None:" not simply "if not myindex:"
      '''
      counter = 0
      for row in table:
          dict_row = convert_to_dict(row)
          if do_op(dict_row.get(field_name, None), op, value):
              return counter
          counter += 1
      return None
docs: Returns the index of the first list entry that matches. If no matches
      are found, it returns None
      NOTE: it is not returning a list. It is returning an integer in range 0..LEN(target)
      NOTE: both 'None' and 0 evaluate as False in python. So, if you are checking for a
         None being returned, be explicit. "if myindex==None:" not simply "if not myindex:"