Словари Python — мощные инструменты для работы с данными. Они поддерживают разные методы, но функция setdefault() выделяется способностью упрощать код и эффективно работать со значениями по умолчанию.
Мы перевели для вас статью о функции setdefault(). В ней рассмотрим синтаксис, сценарии использования функции и покажем её пользу на практических примерах, а в подробном заключении сделаем основные выводы.
Разбираемся в функции setdefault()
Метод setdefault()
в словарях Python позволяет извлекать значение по указанному ключу, если он существует. Если ключа нет, функция вставляет ключ с указанным значением по умолчанию и возвращает это значение. Метод особенно полезен при работе со словарями, в которых обязательно нужен ключ и при этом, если ключа изначально нет, вам нужно инициализировать его значением по умолчанию.
Синтаксис
Так выглядит синтаксис метода setdefault()
:
dict.setdefault(key, default=None)
-
key
: выполняется поиск ключа в словаре. -
default
: если ключ не найден, задаётся и возвращается значение. Значение по умолчанию —None
.
Возвращаемое значение
Метод setdefault()
возвращает:
-
значение указанного ключа, существующего в словаре;
-
значение по умолчанию, если ключа в словаре нет.
Практические примеры
Чтобы понять, как функция setdefault()
работает в разных сценариях, давайте рассмотрим несколько практических примеров.
Пример 1. Базовый сценарий
Это пример базового использования метода setdefault()
.
# Creating a dictionary (создаём словарь) fruits = {'apples': 5, 'oranges': 3} # Using setdefault to get the value of an existing key (с помощью setdefault получаем значение существующего ключа) apples_count = fruits.setdefault('apples', 10) print('Apples:', apples_count) # Using setdefault to add a new key with a default value (c помощью setdefault добавляем новый ключ со значением по умолчанию) bananas_count = fruits.setdefault('bananas', 10) print('Bananas:', bananas_count) # Printing the updated dictionary (выводим обновлённый словарь) print(fruits)
Результат:
Пример 2. Использование setdefault() в цикле
В этом примере с помощью метода setdefault()
подсчитаем частотность элементов в списке.
# List of fruits (список фруктов) fruit_list = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] # Creating an empty dictionary to store the count (создаём пустой словарь для хранения подсчитанных значений) fruit_count = {} # Counting the frequency of each fruit (подсчитываем частотность каждого фрукта) for fruit in fruit_list: fruit_count.setdefault(fruit, 0) fruit_count[fruit] += 1 # Printing the fruit count (выводим число подсчитанных фруктов) print(fruit_count)
Результат:
Пример 3. Использование setdefault() с вложенными словарями
В этом примере мы с помощью метода setdefault()
поработаем с вложенными словарями.
# Creating an empty dictionary to store student grades (создаём пустой словарь для хранения оценок студентов) grades = {} # List of student data (список сведений о студентах) students = [ ('Alice', 'Math', 'A'), ('Bob', 'Math', 'B'), ('Alice', 'Science', 'A'), ('Bob', 'Science', 'C') ] # Inserting student grades into the dictionary (вставляем оценки студентов в словарь) for name, subject, grade in students: grades.setdefault(name, {}) grades[name].setdefault(subject, grade) # Printing the grades dictionary (выводим словарь с оценками студентов) print(grades)
Результат:
Пример 4. Использование setdefault() для сложных структур данных
В этом примере воспользуемся методом setdefault()
, чтобы сформировать словарь списков.
# List of student scores (список баллов студентов) student_scores = [ ('Alice', 85), ('Bob', 92), ('Alice', 88), ('Bob', 95) ] # Creating an empty dictionary to store scores (создаём пустой словарь для хранения баллов) scores = {} # Inserting scores into the dictionary (вставляем баллы в словарь) for name, score in student_scores: scores.setdefault(name, []).append(score) # Printing the scores dictionary (выводим словарь с баллами) print(scores)
Результат:
Что по итогу
Функция setdefault()
— универсальный эффективный инструмент работы со значениями по умолчанию в словарях Python. Она упрощает код, уменьшая необходимость в явных проверках и условных выражениях при работе с ключами в словарях. Научившись работать с методом setdefault()
, вы сможете писать более чистый код, характерный именно для Python, особенно в сценариях, где требуется ключ, который инициализируется значением по умолчанию.
Основные выводы:
-
Базовый сценарий. Метод
setdefault()
позволяет получать значение по имеющемуся ключу или задавать значение по умолчанию, если ключа нет. -
Подсчёт частоты.
setdefault()
можно использовать для эффективного подсчёта частоты элементов в списке. -
Вложенные словари. Метод
setdefault()
особенно полезен при работе с вложенными словарями, так как позволяет с лёгкостью обрабатывать сложные структуры данных. -
Создание сложных структур данных. Метод
setdefault()
можно использовать для формирования словарей списков или других сложных структур данных без явных проверок на наличие ключей.
Включив метод setdefault()
в свой инструментарий Python, можно повысить удобочитаемость, эффективность и надёжность кода. Эта встроенная функция, безусловно, поможет и начинающему, и опытному Python-разработчику качественнее работать со словарями и эффективно управлять значениями по умолчанию.
Чтобы расти, нужно выйти из привычной зоны и сделать шаг к переменам. Можно изучить новое, начав с бесплатных занятий:
-
Вводный курс магистратуры НИУ ВШЭ «Инженерия данных»;
-
1С-аналитика: как стать специалистом по автоматизации процессов.
Или открыть перспективы с профессиональным обучением и переподготовкой:
-
Онлайн-магистратура «Инженерия данных»;
ссылка на оригинал статьи https://habr.com/ru/articles/836800/
Добавить комментарий