def select_input(rows, desc=None, initial=None):
    """
    Creates html select elements from the sequence 'rows', with an initial value of 
    ``initial`` if it is not None and some options description to the element if 'desc'
    is not none
    """
    _l_attrib_str = []
    for k in desc.keys():
        _l_attrib_str.extend([' ', k, "='", desc[k], "'"])
    attrib_str = ''.join(_l_attrib_str)
    options_str = []
    for row in rows:
        opt_template, prefx = "<option value='{0}'{1}>{0}</option>", ''
        if initial is not None and initial == row[0]:
            prefx = " selected='selected'"
        options_str.append(opt_template.format(row[0], prefx))
    return '<select{0}>{1}</select>'.format(attrib_str, ''.join(options_str))
