Jak usunąć pozycję z listy, jeśli istnieje?

| | | | | | | | | | | | | | | | | |

Otrzymuję new_tag z pola tekstowego formularza z self.response.get("new_tag") i selected_tags z pól wyboru z

self.response.get_all("selected_tags") 

Łączę je tak:

tag_string = new_tag new_tag_list = f1.striplist(tag_string.split(";") + selected_tags) 

(f1.striplist to funkcja, która usuwa białe znaki wewnątrz ciągów listy.)

Ale w przypadku, gdy lista_tagów jest pusta (nie wprowadzono żadnych nowych tagów), ale istnieją pewne wybrane_znaczniki, nowa_lista_tagów zawiera pusty ciąg " ".

Na przykład z logging.info:

 new_tag selected_tags[u"Hello", u"Cool", u"Glam"] new_tag_list[u"", u"Hello", u"Cool", u"Glam"] 

Jak pozbyć się pustego ciągu?

Jeśli na liście jest pusty ciąg:

>>> s = [u"", u"Cześć", u"Super", u"Glam"] >>> i = s.index("") >>> del s[i] >>>>> s [u"Hello", u"Cool", u"Glam"] 

Ale jeśli nie ma pustego ciągu:

>> > s = [u"Cześć", u"Super", u"Glam"] >>> if s.index(""): i = s.index("") del s[i] else: print "nowa_lista_tagów nie ma pustego ciągu" 

Ale to daje:

Traceback (ostatnie wywołanie jako ostatnie): Plik „<pyshell#30>”, wiersz 1, w <module> if new_tag_list.index(""): ValueError: list.index(x): x not in list 

Dlaczego tak się dzieje i jak mam to obejść?