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

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (lab) вы научитесь определять, является ли словарь (dictionary) в Python пустым. В рамках занятия рассматривается создание пустых словарей с использованием фигурных скобок {} и конструктора dict(). Затем вы узнаете, как использовать функцию len() для проверки количества пар ключ-значение в словаре, что позволяет эффективно определять пустые словари.

В конце занятия будет показано, как пустые словари оцениваются в булевых контекстах, что даст вам полное понимание работы с пустыми словарями и их определения в Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") subgraph Lab Skills python/booleans -.-> lab-559507{{"Как проверить, является ли словарь пустым в Python"}} python/dictionaries -.-> lab-559507{{"Как проверить, является ли словарь пустым в Python"}} python/build_in_functions -.-> lab-559507{{"Как проверить, является ли словарь пустым в Python"}} python/constructor -.-> lab-559507{{"Как проверить, является ли словарь пустым в Python"}} end

Изучение пустых словарей

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

Для создания пустого словаря вы можете использовать либо фигурные скобки {} , либо конструктор dict(). Давайте посмотрим, как это сделать на практике.

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем empty_dict.py в директории ~/project.

    ~/project/empty_dict.py
  3. Добавьте следующий код Python в файл empty_dict.py:

    ## Creating an empty dictionary using curly braces
    empty_dict_1 = {}
    print("Empty dictionary 1:", empty_dict_1)
    
    ## Creating an empty dictionary using the dict() constructor
    empty_dict_2 = dict()
    print("Empty dictionary 2:", empty_dict_2)

    Этот код создает два пустых словаря, empty_dict_1 и empty_dict_2, с использованием разных методов. Затем функция print() используется для отображения этих словарей.

  4. Запустите скрипт Python с помощью следующей команды в терминале:

    python ~/project/empty_dict.py

    Вы должны увидеть следующий вывод:

    Empty dictionary 1: {}
    Empty dictionary 2: {}

    Этот вывод подтверждает, что оба метода успешно создали пустые словари.

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

Использование функции len() для проверки

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

Давайте модифицируем файл empty_dict.py, который вы создали на предыдущем этапе, чтобы включить функцию len().

  1. Откройте файл empty_dict.py в редакторе VS Code.

    ~/project/empty_dict.py
  2. Измените код Python в файле empty_dict.py, чтобы включить функцию len():

    ## Creating an empty dictionary using curly braces
    empty_dict_1 = {}
    print("Empty dictionary 1:", empty_dict_1)
    print("Length of empty_dict_1:", len(empty_dict_1))
    
    ## Creating an empty dictionary using the dict() constructor
    empty_dict_2 = dict()
    print("Empty dictionary 2:", empty_dict_2)
    print("Length of empty_dict_2:", len(empty_dict_2))
    
    ## Checking if a dictionary is empty using len()
    if len(empty_dict_1) == 0:
        print("empty_dict_1 is empty")
    else:
        print("empty_dict_1 is not empty")

    Этот код вычисляет длину пустых словарей с использованием функции len() и выводит результат. Также он показывает, как использовать функцию len() в условном операторе для проверки, является ли словарь пустым.

  3. Запустите скрипт Python с помощью следующей команды в терминале:

    python ~/project/empty_dict.py

    Вы должны увидеть следующий вывод:

    Empty dictionary 1: {}
    Length of empty_dict_1: 0
    Empty dictionary 2: {}
    Length of empty_dict_2: 0
    empty_dict_1 is empty

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

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

Оценка в булевом контексте

На этом этапе вы узнаете, как пустые словари (dictionaries) оцениваются в булевом контексте. В Python некоторые значения считаются "истинными" (возвращают True), а другие - "ложными" (возвращают False) при использовании в булевом контексте, например, в операторе if. Пустой словарь считается "ложным".

Давайте модифицируем файл empty_dict.py, с которым вы работали, чтобы продемонстрировать этот концепт.

  1. Откройте файл empty_dict.py в редакторе VS Code.

    ~/project/empty_dict.py
  2. Измените код Python в файле empty_dict.py, чтобы включить булеву оценку пустого словаря:

    ## Creating an empty dictionary using curly braces
    empty_dict_1 = {}
    print("Empty dictionary 1:", empty_dict_1)
    print("Length of empty_dict_1:", len(empty_dict_1))
    
    ## Creating an empty dictionary using the dict() constructor
    empty_dict_2 = dict()
    print("Empty dictionary 2:", empty_dict_2)
    print("Length of empty_dict_2:", len(empty_dict_2))
    
    ## Checking if a dictionary is empty using len()
    if len(empty_dict_1) == 0:
        print("empty_dict_1 is empty")
    else:
        print("empty_dict_1 is not empty")
    
    ## Evaluating an empty dictionary as a boolean
    if empty_dict_1:
        print("empty_dict_1 is truthy")
    else:
        print("empty_dict_1 is falsy")

    Этот код добавляет оператор if, который напрямую оценивает переменную empty_dict_1. Поскольку это пустой словарь, в булевом контексте он будет восприниматься как False.

  3. Запустите скрипт Python с помощью следующей команды в терминале:

    python ~/project/empty_dict.py

    Вы должны увидеть следующий вывод:

    Empty dictionary 1: {}
    Length of empty_dict_1: 0
    Empty dictionary 2: {}
    Length of empty_dict_2: 0
    empty_dict_1 is empty
    empty_dict_1 is falsy

    Этот вывод подтверждает, что пустой словарь empty_dict_1 оценивается как "ложный" в операторе if.

Понимание того, что пустые словари оцениваются как False, может упростить ваш код и сделать его более читаемым. Вы можете напрямую использовать словарь в булевом контексте, не проверяя явно его длину.

Резюме

В этом практическом занятии (lab) вы узнали о пустых словарях (dictionaries) в Python и о том, как создавать их с помощью фигурных скобок {} или конструктора dict(). Вы создали файл empty_dict.py и использовали функцию print() для отображения созданных пустых словарей, убедившись, что оба метода успешно создают пустые словари.

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