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ść?