Je reçois new_tag
à partir d'un formulaire champ de texte avec
self.response.get("new_tag")
et
selected_tags
de case à cocher champs avec
self.response.get_all("selected_tags")
.
Je les combiner comme ceci:
tag_string = new_tag
new_tag_list = f1.striplist(tag_string.split(",") + selected_tags)
(f1.striplist
est une fonction qui supprime les espaces blancs à l'intérieur des chaînes dans la liste.)
Mais dans le cas qui tag_list
est vide (pas de nouvelles balises sont inscrits), mais il y a quelques selected_tags
, new_tag_list
contient une chaîne vide " "
.
Par exemple, à partir d' logging.info
:
***new_tag***
***selected_tags***[u'Hello', u'Cool', u'Glam']
***new_tag_list***[u'', u'Hello', u'Cool', u'Glam']
Comment puis-je me débarrasser de la chaîne vide?
Si il y a une chaîne vide dans la liste:
>>> s = [u'', u'Hello', u'Cool', u'Glam']
>>> i = s.index("")
>>> del s[i]
>>> s
[u'Hello', u'Cool', u'Glam']
Mais si il n'y a pas de chaîne vide:
>>> 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"
Mais ce qui donne:
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
Pourquoi est-ce? Et que proposez-vous comme solution? Merci!