Самый краткий способ проверить, пуст ли список или не содержит только Ни один?

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

package MMN;
use My::Module::Name '/./';
use Exporter ();
@ISA = 'Exporter';
@EXPORT = @My::Module::Name::EXPORT_OK;
1;

Примечание, что Средство экспорта немного знало regex функцию; можно просто хотеть сделать

perl -MMy::Module::Name=/./ -e ...
6
задан lesmana 12 June 2013 в 16:07
поделиться

4 ответа

Один из способов - использовать all и понимание списка:

if all(e is None for e in myList):
    print('all empty or None')

Это также работает для пустых списков. В более общем плане, чтобы проверить, содержит ли список только те элементы, которые оцениваются как False , вы можете использовать any :

if not any(myList):
    print('all empty or evaluating to False')
15
ответ дан 8 December 2019 в 03:10
поделиться

Вы можете использовать all () функция для проверки - все элементы отсутствуют:

a = []
b = [None, None, None]
all(e is None for e in a) # True
all(e is None for e in b) # True
9
ответ дан 8 December 2019 в 03:10
поделиться

Вы можете напрямую сравнивать списки с == :

if x == [None,None,None]:

if x == [1,2,3]
4
ответ дан 8 December 2019 в 03:10
поделиться

Если вас интересуют элементы в списке, которые оцениваются как истинные:

if mylist and filter(None, mylist):
    print "List is not empty and contains some true values"
else:
    print "Either list is empty, or it contains no true values"

Если вы хотите строго проверять на Нет , используйте фильтр (лямбда x : x не равно None, mylist) вместо filter (None, mylist) в приведенном выше операторе if .

2
ответ дан 8 December 2019 в 03:10
поделиться
Другие вопросы по тегам:

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