Я получаю new_tag
из текстового поля формы с self.response.get("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'Cool', 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 (most recent call last):
File "<pyshell#30>", line 1, in <module>
if new_tag_list.index(""):
ValueError: list.index(x): x not in list
Почему это происходит, и как мне его обойти?