d = {}
d.setdefault("key", 123)
print(d)
setdefault(key, default)
словаря d
проверяет, существует ли ключ "key"
.
Если ключ существует, то возвращается значение этого ключа.
Если ключ не существует, то в словарь добавляется ключ "key"
со значением 123
и возвращается значение 123
.
В данном случае, изначально словарь пустой, поэтому ключа "key"
не существует.
В результате выполнения кода в словарь d
будет добавлен ключ "key"
со значением 123
.
На экран будет выведено: {'key': 123}
.
Код выполняет следующие действия:
d = {}
: Создается пустой словарь с именем d
.d.setdefault("key", 123)
: Метод setdefault()
пытается получить значение по ключу "key"
из словаря d
.
"key"
существует в словаре d
, то метод вернет значение, связанное с этим ключом. В этом случае словарь d
не изменится."key"
не существует в словаре d
, то метод добавит этот ключ в словарь d
и присвоит ему значение 123
. После этого он вернет значение 123
.print(d)
: Выводит содержимое словаря d
в консоль.В данном случае, словарь d
изначально пустой. Поэтому, когда вызывается d.setdefault("key", 123)
, ключ "key"
не существует в словаре. Метод setdefault()
добавляет ключ "key"
в словарь и присваивает ему значение 123
.
После выполнения кода, словарь d
будет содержать один элемент: {'key': 123}
.
Поэтому, вывод в консоль будет следующим:
{'key': 123}
setdefault()
очень полезен, когда нужно инициализировать значения в словаре по умолчанию. Например, при подсчете количества вхождений элементов в списке:
counts = {}
my_list = ['a', 'b', 'a', 'c', 'b', 'a']
for item in my_list:
counts.setdefault(item, 0)
counts[item] += 1
print(counts) # Output: {'a': 3, 'b': 2, 'c': 1}
setdefault()
избегает необходимости использовать условные операторы (if key in d
) для проверки существования ключа перед присваиванием ему значения.