В Python словарь — это встроенный тип данных, который можно использовать для хранения изменяемой неупорядоченной коллекции элементов. Каждый элемент, хранящийся в словаре, имеет пару ключ-значение. Часто при написании кода крайне важно создать пустой словарь.

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

Содержание

Методы проверки

Существует несколько способов проверить, пуст ли словарь Python. Давайте рассмотрим их поочередно на нескольких наглядных примерах.

Способ 1: используя оператор if not

В Python вы можете проверить, пуст ли словарь, с помощью оператора if not.

Оператор if not проверяет логическое значение следующего за ним объекта, а пустой словарь оценивается как False в логическом контексте.

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

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

Представьте, что вы пишете программу для анализа населения штатов США, но хотите, чтобы она выполнялась только в том случае, если в словаре есть данные.

state_population = {}
if not state_population:
    print("No data available.")
else:
    print(f"Processing data: {state_population}")

Выходные данные: в этом случае выходные данные: «Нет доступных данных». потому что словарь state_population пуст.

No data available.

Пустой словарь Python

Способ 2: используйте функцию bool()

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

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

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

Система возвращает словарь Python, который представляет перечень конкретной книги. Если словарь пуст, значит, книги нет на складе. Если в нем есть статьи, значит, книга есть в наличии, и словарь дает о ней более подробную информацию.

def check_book_stock(book_details):
    if not bool(book_details):
        return "The book is not in stock."
    else:
        return f"The book is in stock.\nDetails: {book_details}"

book_inventory_1 = {}
print(check_book_stock(book_inventory_1))

book_inventory_2 = {
    'title': 'To Kill a Mockingbird',
    'author': 'Harper Lee',
    'price': '$10.99',
    'quantity': 5
}
print(check_book_stock(book_inventory_2))

Вывод: в первом сценарии (book_inventory_1) словарь пуст. Используя функцию bool(), она возвращает значение False, подразумевая, что книги нет на складе.

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

The book is not in stock.
The book is in stock.
Details: {'title': 'To Kill a Mockingbird', 'author': 'Harper Lee', 'price': '$10.99', 'quantity': 5}

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

Способ 3: с помощью функции len()

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

Например: представьте, что вы работаете над системой, которая управляет данными регистрации избирателей в небольшом округе США. У вас есть словарь Python, где ключом является имя избирателя, а значением — его зарегистрированный адрес.

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

voter_data = {}
if len(voter_data) == 0:
    print("No voters have been registered yet.")
else:
    print(f"There are {len(voter_data)} registered voters.")

Вывод: словарь Python voicer_data пуст. Функция len() возвращает 0, что означает, что в словаре нет элементов. Таким образом, в выводе правильно указано, что избиратели еще не зарегистрированы.

No voters have been registered yet.

Способ 3: с помощью функции len()

Способ 4: с помощью оператора ==

В Python мы можем проверить, пуст ли словарь (т. е. не содержит ли он ключей или значений), сравнивая его с пустым словарем ({}) с помощью оператора ==. Оператор == используется для сравнения значений двух объектов и возвращает True, если они равны, и False в противном случае.

Например: давайте рассмотрим сценарий, в котором мы хотим проверить, есть ли в штате зарегистрированные транспортные средства. Предположим, что регистрации транспортных средств хранятся в словаре Python, где ключами являются номерные знаки, а значениями — сведения о транспортных средствах. Если словарь Python пуст, это означает, что в штате нет зарегистрированных транспортных средств.

new_state_vehicle_registrations = {}
if new_state_vehicle_registrations == {}:
    print("The new state has no registered vehicles.")
else:
    print(f"The new state has {len(new_state_vehicle_registrations)} registered vehicles.")

Вывод: в этом случае словарь new_state_vehicle_registrations в Python пуст. Таким образом, сравнивая словарь с {}, вы можете легко проверить, пуст он или нет, и выполнить на основе этого действия.

The new state has no registered vehicles.

Способ 3: с помощью функции len()

Заключение

В этом руководстве объясняется, как проверить, пуст ли словарь Python, с помощью четырех различных методов, таких как оператор if not, функция bool(), функция len() и оператор ==, с наглядными примерами. Выбор зависит от конкретного варианта использования и предпочтений программиста. Будь то прямые логические проверки или использование встроенных функций, Python предлагает гибкость и эффективность при решении таких задач.

Добавить комментарий