如果存在,如何刪除列表中的項目?

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

我從帶有 self.response.get("new_tag") 的表單文本字段中獲取 new_tag 並從復選框字段中獲取 selected_tags

self.response.get_all("selected_tags") 

我這樣組合它們:

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

(f1.striplist 是一個去除字符串中空格的函數列表。)

但在tag_list為空(沒有輸入新標籤)但有一些selected_tags的情況下,new_tag_list 包含一個空字符串 " "

例如來自 logging.info

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

如何去掉空字符串?

如果列表中有空字符串:

>>> s = [u"", u"Hello", u"酷", u"Glam"] >>> i = s.index("") >>> del s[i] >>> s [u"Hello", u"Cool", u"Glam"] 

但是如果沒有空字符串:

>> > s = [u"Hello", u"Cool", u"Glam"] >>> if s.index(""): i = s.index("") del s[i] else: print "new_tag_list has no empty string" 

但這給出了:

Traceback(最近一次調用最後一次):文件“<pyshell#30>”,第 1 行,在 <module> if new_tag_list.index(""): ValueError: list.index(x): x not in list 

為什麼會發生這種情況,我該如何解決?