Метод словаря setdefault() в Python

Использование метода setdefault() при работе со словарем в Python

Метод setdefault() в Python является встроенным методом словаря и используется для возврата значения ключа, если он уже существует в словаре. Если ключ не существует, метод устанавливает значение по умолчанию и возвращает его.

Синтаксис

Синтаксис метода setdefault() в Python выглядит следующим образом:

dictionary.setdefault(keyname, value)

Здесь keyname — это ключ, который мы ищем в словаре, а value — это значение, которое будет установлено по умолчанию, если ключ не найден в словаре. Аргумент value является необязательным. Если он не указан, значение по умолчанию будет None.

Примеры использования метода setdefault()

Базовый пример

В следующем примере мы ищем ключ age в словаре. Поскольку ключ age уже существует в словаре, метод setdefault() возвращает его текущее значение.

person = {"name": "John", "age": 30}
age = person.setdefault("age")
print(age)  # Выведет: 30

Установка значения по умолчанию

В следующем примере мы пытаемся получить значение для ключа country, которого нет в словаре. В этом случае метод setdefault() устанавливает значение по умолчанию USA для ключа country и возвращает это значение.

person = {"name": "John", "age": 30}
country = person.setdefault("country", "USA")
print(country)  # Выведет: USA
print(person)  # Выведет: {'name': 'John', 'age': 30, 'country': 'USA'}

Подробные примеры и сценарии использования метода setdefault()

Использование setdefault для создания словаря со списками в качестве значений

Метод setdefault() часто используется для создания словаря, где каждому ключу соответствует список значений. В следующем примере мы создаем словарь, где ключи — это первые буквы слов, а значения — это списки слов, начинающиеся с соответствующей буквы.

words = ["apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "kiwi"]
d = {}

for word in words:
    key = word[0]
    d.setdefault(key, []).append(word)

print(d)

#{'a': ['apple'], 'b': ['banana'], 'c': ['cherry'], 'd': ['date'], 'e': ['elderberry'], 'f': ['fig'], 'g': ['grape'], 'k': ['kiwi']}

Использование setdefault для подсчета элементов

Метод setdefault() также может быть полезен для подсчета элементов в списке. В следующем примере мы подсчитываем, сколько раз каждое слово появляется в списке.

words = ["apple", "banana", "apple", "cherry", "banana", "banana"]
count = {}

for word in words:
    count.setdefault(word, 0)
    count[word] += 1

print(count)  

#{'apple': 2, 'banana': 3, 'cherry': 1}

Вывод

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

Содержание: