Получите первую непустую строку из списка в Python

Вы используете одиночный элемент, когда необходимо управлять совместно используемым ресурсом. Например, спулер принтера. Ваше приложение должно только иметь единственный экземпляр спулера, чтобы не конфликтовать запрос на тот же ресурс.

Или соединение с базой данных или файловый менеджер и т.д.

10
задан Simon D 16 July 2009 в 14:36
поделиться

6 ответов

next(s for s in list_of_string if s)

Редактировать: версия доказательства py3k, как рекомендовано Stephan202 в комментариях, спасибо.

21
ответ дан 3 December 2019 в 14:44
поделиться

Чтобы удалить все пустые строки,

[s for s в list_of_strings if s]

Чтобы получить первую непустую строку, просто создайте этот список и получите первый элемент или используйте ленивый метод, предложенный wuub.

5
ответ дан 3 December 2019 в 14:44
поделиться
def get_nonempty(list_of_strings):
    for s in list_of_strings:
        if s:
            return s
3
ответ дан 3 December 2019 в 14:44
поделиться

Вот короткий путь:

filter(None, list_of_strings)[0]

РЕДАКТИРОВАТЬ:

Вот немного более длинный путь, который лучше:

from itertools import ifilter
ifilter(None, list_of_strings).next()
3
ответ дан 3 December 2019 в 14:44
поделиться

На основании вашего вопроса мне придется предположить многое, но чтобы «получить» первую непустую строку:

(i for i, s in enumerate(x) if s).next()

, которая возвращает ее индекс в списке . Привязка "x" указывает на ваш список строк.

0
ответ дан 3 December 2019 в 14:44
поделиться

, чтобы получить первую непустую строку в списке, вам просто нужно перебрать ее и проверить, не пуста ли она. вот и все.

arr = ['','',2,"one"]
for i in arr:
    if i:
        print i
        break
0
ответ дан 3 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: