Ricevo new_tag
da un campo di testo del modulo con self.response.get("new_tag")
e selected_tags
dai campi della casella di controllo con
self.response.get_all("selected_tags")
Li combino in questo modo:
tag_string = new_tag new_tag_list = f1.striplist(tag_string.split(";") +select_tags)
(f1.striplist
è una funzione che elimina gli spazi bianchi all'interno delle stringhe in l'elenco.)
Ma nel caso in cui tag_list
sia vuoto (non vengono inseriti nuovi tag) ma ci siano alcuni selected_tags
, new_tag_list
contiene una stringa vuota " "
.
Ad esempio, da logging.info
:
new_tagselect_tags[u"Hello", u"Cool", u"Glam"] new_tag_list[u"", u"Hello", u"Cool", u"Glam"]
Come faccio a eliminare la stringa vuota?
Se è presente una stringa vuota nell'elenco:
>>> s = [u"", u"Ciao", u"Cool", u"Glam"] >>> i = s.index("") >>> del s[i] >>> s [u"Hello", u"Cool", u"Glam"]
Ma se non c'è una stringa vuota:
>> > s = [u"Ciao", u"Cool", u"Glam"] >>> if s.index(""): i = s.index("") del s[i] else: print "new_tag_list non ha una stringa vuota"
Ma questo dà:
Traceback (ultima chiamata più recente): File "<pyshell#30>", riga 1, in <module> if new_tag_list.index(""): ValueError: list.index(x): x not in list
Perché succede e come posso aggirarlo?