<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def options_from_form(self, formdata):
 """get the option selected by the user on the form This only constructs the user_options dict, it should not actually load any options. That is done later in `.load_user_options()` Args: formdata: user selection returned by the form To access to the value, you can use the `get` accessor and the name of the html element, for example:: formdata.get('profile',[0]) to get the value of the form named "profile", as defined in `form_template`:: </select> Returns: user_options (dict):
 the selected profile in the user_options form, e.g. ``{"profile": "8 CPUs"}`` """

        if not self.profile_list or self._profile_list is None:
            return formdata
        # Default to first profile if somehow none is provided
        try:
            selected_profile = int(formdata.get('profile', [0])[0])
            options = self._profile_list[selected_profile]
        except (TypeError, IndexError, ValueError):
            raise web.HTTPError(400, "No such profile: %i", formdata.get('profile', None))
        return {
            'profile': options['display_name']
        }