Вы используете одиночный элемент, когда необходимо управлять совместно используемым ресурсом. Например, спулер принтера. Ваше приложение должно только иметь единственный экземпляр спулера, чтобы не конфликтовать запрос на тот же ресурс.
Или соединение с базой данных или файловый менеджер и т.д.
next(s for s in list_of_string if s)
Редактировать: версия доказательства py3k, как рекомендовано Stephan202 в комментариях, спасибо.
Чтобы удалить все пустые строки,
[s for s в list_of_strings if s]
Чтобы получить первую непустую строку, просто создайте этот список и получите первый элемент или используйте ленивый метод, предложенный wuub.
def get_nonempty(list_of_strings):
for s in list_of_strings:
if s:
return s
Вот короткий путь:
filter(None, list_of_strings)[0]
РЕДАКТИРОВАТЬ:
Вот немного более длинный путь, который лучше:
from itertools import ifilter
ifilter(None, list_of_strings).next()
На основании вашего вопроса мне придется предположить многое, но чтобы «получить» первую непустую строку:
(i for i, s in enumerate(x) if s).next()
, которая возвращает ее индекс в списке . Привязка "x" указывает на ваш список строк.
, чтобы получить первую непустую строку в списке, вам просто нужно перебрать ее и проверить, не пуста ли она. вот и все.
arr = ['','',2,"one"]
for i in arr:
if i:
print i
break