<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_drop_down(self, col_number, col_label):
 """ Add a correctly formatted drop-down-menu for given col_label, if required. Otherwise do nothing. """

        if col_label in ['magic_method_codes', 'magic_method_codes++']:
            self.add_method_drop_down(col_number, col_label)
        if col_label in vocab.possible_vocabularies:
            if col_number not in list(self.choices.keys()): # if not already assigned above
                self.grid.SetColLabelValue(col_number, col_label + "**") # mark it as using a controlled vocabulary
                url = 'http://api.earthref.org/MagIC/vocabularies/{}.json'.format(col_label)
                controlled_vocabulary = pd.io.json.read_json(url)
                stripped_list = []
                for item in controlled_vocabulary[col_label][0]:
                    try:
                        stripped_list.append(str(item['item']))
                    except UnicodeEncodeError:
                        # skips items with non ASCII characters
                        pass
                #stripped_list = [item['item'] for item in controlled_vocabulary[label][0]]

                if len(stripped_list) > 100:
                # split out the list alphabetically, into a dict of lists {'A': ['alpha', 'artist'], 'B': ['beta', 'beggar']...}
                    dictionary = {}
                    for item in stripped_list:
                        letter = item[0].upper()
                        if letter not in list(dictionary.keys()):
                            dictionary[letter] = []
                        dictionary[letter].append(item)

                    stripped_list = dictionary

                two_tiered = True if isinstance(stripped_list, dict) else False
                self.choices[col_number] = (stripped_list, two_tiered)