Listedeki bir öğe varsa nasıl silinir?

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

self.response.get("new_tag") içeren bir form metin alanından new_tag ve onay kutusu alanlarından selected_tags alıyorum.

self.response.get_all("selected_tags") 

Onları şu şekilde birleştiriyorum:

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

(f1.striplist, dizelerin içindeki beyaz boşlukları çıkaran bir işlevdir. liste.)

Ancak tag_list öğesinin boş olması (yeni etiket girilmemesi) ancak bazı selected_tags olması durumunda, new_tag_list , boş bir " " dizesi içeriyor.

Örneğin, logging.info'dan:

 new_tag selected_tags[u"Merhaba", u"Harika", u"Glam"] new_tag_list[u"", u"Merhaba", u"Harika", u"Glam"] 

Boş dizeden nasıl kurtulurum?

Listede boş bir dize varsa:

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

Ama boş dize yoksa:

>> > s = [u"Merhaba", u"Harika", u"Glam"] >>> if s.index(""): i = s.index("") del s[i] else: print "new_tag_list boş dizeye sahip değil" 

Ancak bu şunu verir:

İzleme (en son arama son): Dosya "<pyshell#30>", satır 1, <module> if new_tag_list.index(""): ValueError: list.index(x): x listede yok 

Bu neden oluyor ve nasıl çözebilirim?