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

В этом руководстве вы научитесь использовать Python для проверки пустоты списка. Списки в Python - одни из самых универсальных и широко используемых контейнерных объектов. Поскольку списки в Python можно итерировать, часто первым делом стоит проверить, пуст ли список, прежде чем пытаться итерировать по нему. Без этого ваша программа может столкнуться с проблемами и аварийно завершить работу.

К концу этого урока вы узнаете:

  • Как использовать Python, чтобы проверить, пуст ли список

  • Почему вы хотите проверить, пуст ли список Python

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

  • Как проверить, пуст ли массив NumPy

Оглавление

Краткий обзор списков Python

Прежде чем мы начнем изучать, как проверить, пуст ли список в Python, давайте быстро рассмотрим, что такое списки в Python и как их можно использовать. Список в Python - это гетерогенный, изменяемый и итерируемый объект-контейнер в Python.

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

Давайте рассмотрим простой список и как мы можем перебирать элементы списка:

# Iterating Over a Simple List
list1 = [1,2,3]
for item in list1:
    print(item)

# Returns:
# 1
# 2
# 3

Мы также можем создать пустой список, используя любой из нижеприведенных методов:

# Creating Empty Lists in Python
empty1 = []
empty2 = list()

При попытке итерации по этим спискам ничего не произойдет. Это может привести к некоторым неожиданным результатам. Из-за этого проверка на то, пустой ли список, может быть полезным инструментом для обеспечения ожидаемого выполнения вашей программы.

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

Документ PEP 8 для Python представляет собой руководство по стилю кодирования на Python. Поэтому он содержит конвенции для написания кода. Следование этим конвенциям может привести к коду, который лучше понимается другими и использует язык так, как это было задумано.

Причина, по которой я поднимаю этот вопрос, заключается в том, что PEP 8 действительно предлагает соглашение о проверке того, является ли список пустым или нет. Согласно PEP 8, рекомендуется следующий код:

# Using in To Check if a List is Empty
seq = []
if not seq:
   print('List is empty')
if seq:
   print('List is not empty')

Давайте разберемся, как это работает: Python предполагает, что пустой список, как и другие пустые контейнеры, представлен False. На самом деле мы пишем if not False

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

Проверка того, пуст ли список Python с помощью bool

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

Давайте посмотрим, как мы можем использовать функцию bool(), чтобы проверить, пуст ли список:

# Using bool() to Check If a List is Empty
empty_list = []

if bool(empty_list) == False:
    print('List is empty')
else:
    print('List is not empty')

# Returns: List is empty

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

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

Ещё один распространённый способ проверить, пуст ли список в Python, - это сравнить ваш список с пустым списком с использованием оператора равенства ==. Этот метод довольно явный и, возможно, дружелюбный для новичков, так как он делает свои намерения очень очевидными.

Одно из преимуществ этого подхода заключается в том, что он позволяет ясно понять, что вы проверяете, является ли объект списком, а не чем-то другим. Давайте посмотрим, как мы можем использовать Python для этого:

# Using Equality to Check if a List is Empty
empty_list = []

if empty_list == []:
    print('List is empty')
else:
    print('List is not empty')

# Returns: List is empty

В следующем разделе вы узнаете, как использовать длину списка для проверки его на пустоту.

Проверка того, пуст ли список Python, используя его длину

В этом разделе вы узнаете, как проверить, пуст ли список в Python, проверив его длину. Интуитивно пустой список не содержит элементов. Мы можем использовать эту информацию, чтобы определить, есть ли в списке какие-либо элементы.

# Using Length to Check if a List is Empty
empty_list = []

if len(empty_list) == 0:
    print('List is empty')
else:
    print('List is not empty')

# Returns: List is empty

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

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

Работа со списками списков добавляет дополнительный уровень сложности, но это нечто, что мы можем интуитивно решить с помощью Python! Функция any() в Python проверяет, является ли хотя бы один элемент в контейнере True, и вернет False, если это не так. Теперь, когда мы знаем, что список в Python считается False, мы можем использовать это в своих интересах.

# Using any() to Check if a List of Lists is Empty
empty_list_of_lists = [[], [], []]

if not any(empty_list_of_lists):
    print('List is empty')
else:
    print('List is not empty')

# Returns: List is empty

В приведенном выше коде мы используем функцию any(), чтобы проверить, считается ли хоть один элемент True. Поскольку это не так, скрипт правильно сообщает нам, что список списков пуст.

Проверка того, является ли массив NumPy пустым

Массивы NumPy похожи на списки в Python, хотя это довольно упрощённое сравнение. Мы можем проверить, пуст ли массив, используя его атрибут .size, который возвращает размер данного массива. Давайте посмотрим, как мы можем это сделать:

# Using NumPy to Check if an Array is Empty
import numpy as np

arr = np.array([])

if arr.size:
    print('Array is not empty')
else:
    print('Array is empty')

Часто задаваемые вопросы

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

Лучший способ, согласно PEP-8, - использовать ключевое слово if. Написав if a_list:, вы можете проверить, пустой список или нет, поскольку пустой список вернётFalse

Пустой список Python равен False?

В Python пустой список оценивается как False. Это означает, что при оценке bool([]), будет возвращено значение

Conclusion

Работа со списками в Python является важным навыком для разработчика на Python любого уровня. Умение проверять, пуст ли список, – это простая, но важная задача, чтобы обеспечить желаемое функционирование вашей программы. В этом учебнике вы научились проверять, пуст ли список, используя истинность, длину и равенство. Вы также узнали, как проверить, пусты ли списки списков и являются ли массивы NumPy пустыми.

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

  • Python: проверьте, пуст ли словарь (5 способов!)

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

  • Как перебирать (цикл) список в Python

Last updated