Я получаю 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"Привет", u"Круто", u"Гламурно"] new_tag_list[u"", u"Привет", u"Круто", u"Гламурно"]
Как избавиться от пустой строки?
Если в списке есть пустая строка:
>>> s = [u"", u"Привет", u"Круто", u"Гламур"] >>> i = s.index("") >>> дель s[i] >>> s [u"Hello", u"Cool", u"Glam"]
Но если нет пустой строки:
>> > s = [u"Привет", u"Круто", u"Гламур"] >>> if s.index(""): i = s.index("") del s[i] else: print "new_tag_list не имеет пустой строки"
Но это дает:
Traceback (последний последний вызов): файл "<pyshell#30>", строка 1, в <module> if new_tag_list.index(""): ValueError: list.index(x): x не в списке
Почему это происходит и как это обойти?