3 простых способа проверить, пуст ли список в Python

Хотите узнать, как проверить, является ли список пустым в Python? Вы в правильном месте. Здесь вы узнаете три простых способа сделать это.

Чтобы проверить, является ли список Python пустым, можно использовать встроенную функцию len(), которая возвращает количество элементов в списке. Эту функцию можно использовать вместе с оператором if/else, чтобы сделать поведение вашего приложения гибким. Два других способа проверки пустого списка — это оператор «not» и сравнение с пустым списком [].

Начнем с первого способа проверки пустого списка!

Как проверить, пуст ли список в Python?

Простой способ проверить, является ли список пустым, с помощью Python — использовать встроенную функцию len(). Эта функция возвращает количество элементов в списке (длину списка). Если количество элементов, возвращаемых функцией len(), равно нулю, список пуст.

Прежде всего, давайте воспользуемся оболочкой Python, чтобы увидеть, как значение, возвращаемое функцией len(), изменяется в зависимости от количества элементов в списке.

>>> numbers = [1, 2, 3, 4, 5]
>>> len(numbers)
5

>>> numbers = []
>>> len(numbers)
0

Вы можете видеть, что в первом примере функция len() возвращает 5, а во втором примере она возвращает 0. Это точно соответствует количеству элементов в списке.

Теперь  давайте напишем код Python, использующий эту логику.

Обычно при написании кода для вашего приложения вы реализуете различную логику в зависимости от того, является ли список пустым или нет. Для этого вы используете оператор if else.

numbers = [1, 2, 3, 4, 5]

if len(numbers) == 0:
    print("The list is empty")
else:
    print("The list is not empty")

# The list is not empty

Идея состоит в том, чтобы выполнить код в ветке if, если длина списка равна 0, в противном случае выполнить код в ветке else.

В зависимости от длины списка мы выведем разное сообщение. Код выше выводит это конкретное сообщение, поскольку список numbersсостоит из 5 элементов.

Теперь замените назначение списка numbers следующей строкой кода:

numbers = []

С помощью этого синтаксиса вы присвоили пустой список переменной numbers. Выполните код еще раз и убедитесь, что вы видите следующий вывод:

The list is empty

В реальном приложении вы бы включили дополнительную логику в тело ветвей if и else вместо того, чтобы просто вывести сообщение.

При таком подходе следует учитывать, что это не тот подход, который предлагается в PEP 8 Style Guide. В то же время он знакомит вас с некоторыми основными концепциями Python.

Проверьте, пуст ли список Python, используя логический оператор not

Теперь давайте продолжим с более питонским способом проверки того, пусты ли списки или нет.

Обычный способ проверить, является ли список пустым в Python, — использовать оператор not. Оператор not — это логический оператор, который возвращает True, если список пуст, и False, если список не пустой. Это основано на том факте, что пустой список в Python считается False. Этот подход соответствует руководству по стилю PEP 8.

Вы можете использовать встроенную функцию bool(), чтобы увидеть, что Python оценивает пустой список как False, а непустой список как True.

>>> bool([])
False
>>> bool([1, 2, 3, 4, 5])
True

Теперь давайте познакомимся с оператором not, проверив, как он работает, с помощью оболочки Python.

>>> numbers = [1, 2, 3, 4, 5]
>>> not numbers
False

>>> numbers = []
>>> not numbers
True

Тест, который мы выполнили в оболочке Python, подтверждает, что оператор «not» возвращает True, когда список пуст. Это именно то условие, которое мы хотим проверить.

Теперь, так же как мы делали это раньше, мы воспользуемся оператором if else, чтобы показать, как использовать оператор not в реальном приложении Python.

numbers = [1, 2, 3, 4, 5]

if not numbers:
    print("The list is empty")
else:
    print("The list is not empty")

# The list is not empty

Этот оператор if/else проверяет, является ли список пустым.

Код в операторе if выполняется, если список пуст. Код в операторе else выполняется, если список не пуст.

Затем установите пустой список numbers и проверьте сообщение еще раз:

numbers = []

if not numbers:
    print("The list is empty")
else:
    print("The list is not empty")

# The list is empty

Это показывает, что оператор not работает так, как мы и ожидали, при определении того, является ли список Python пустым или нет.

Проверьте, пуст ли список Python, сравнив его с пустым списком

Вы можете проверить, является ли список пустым или нет, в Python, сравнив его с пустым списком, где пустой список представлен открытыми и закрытыми квадратными скобками []. Чтобы сравнить список с пустым списком, вы можете использовать оператор равенства.

Вот как это будет работать в оболочке Python:

>>> numbers = [1, 2, 3, 4, 5]
>>> numbers == []
False

>>> numbers = []
>>> numbers == []
True

Сначала вы создаете список чисел, который не является пустым. Когда вы сравниваете этот список с пустым списком [], результатом является логическое значение со значением False.

Во втором примере вы обновляете список numbers, назначая ему пустой список. Когда вы сравниваете его с пустым списком с помощью оператора равенства, вы получаете обратно логическое значение True, поскольку наш список равен пустому списку.

Как объяснялось ранее, вы также можете интегрировать эту булеву логику с оператором if/else:

if numbers == []:
    print("The list is empty")
else:
    print("The list is not empty")

Теперь вы знаете еще один способ проверить, пуст ли список, с помощью Python.

Заключение

Отличная работа!

Вы завершили этот урок и теперь знаете несколько способов проверки пустого списка Python. Это обычная проверка, которую нужно выполнять при написании программы Python.

Также преимуществом методов, которые мы рассмотрели в этой статье для проверки пустости списка, является то, что нам не пришлось импортировать модули Python. Результатом является более простая программа Python.

Среди трех подходов, предлагаемых в этой статье, используется подход с использованием оператора «not», который соответствует Руководству по стилю PEP 8.

Автор

Фото аватара

Владимир Михайлов

Программист на Python с большим количеством опыта и разнообразных проектов.