Привет, ребят! Столкнулся с использованием метода setdefault в питоне, но не совсем понял, в чем его смысл и как он работает. Может кто-то объяснить на простом языке и привести пару примеров кода? Заранее спасибо!
Привет, ребят! Столкнулся с использованием метода setdefault в питоне, но не совсем понял, в чем его смысл и как он работает. Может кто-то объяснить на простом языке и привести пару примеров кода? Заранее спасибо!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Метод setdefault() в Python используется для того, чтобы получить значение по ключу из словаря. Если ключ не существует, он добавляет его с указанным значением по умолчанию. Пример:
Если 'c' не было в словаре, теперь он там есть, и возвращаемое значение - это значение по умолчанию.Программный код:
my_dict = {'a': 1, 'b': 2}
value = my_dict.setdefault('c', 3)
print(my_dict) # Вывод: {'a': 1, 'b': 2, 'c': 3}
print(value) # Вывод: 3
Отлично пояснил, я тоже думал, что этот метод просто возвращает значение ключа, не знал про автоматическое добавление!Сообщение от Huckleberry
Короче, setdefault полезен, когда не хочешь сначала проверять, есть ли ключ, а сразу записывать значение, если его нет. Пример для словаря с числом элементов:
Программный код:
counts = {}
for item in ['a', 'b', 'a', 'c', 'b']:
counts.setdefault(item, 0)
counts[item] += 1
print(counts) # Вывод: {'a': 2, 'b': 2, 'c': 1}
Наглядный пример со счетчиками; сразу видно, зачем это нужно.Сообщение от ЗвездныйРыцарь
есть ещё вариант использования, когда ты влияешь на список. Пример:
Так ты добавляешь элементы в список при каждом вызове метода.Программный код:
my_dict = {}
my_dict.setdefault('key', []).append('value')
print(my_dict) # Вывод: {'key': ['value']}
"Хороший кейс с добавлением в список, это как раз то, что мне нужна!”Сообщение от Даниил Андреевич
Метод setdefault() по структуре похож на get(), но также добавляет пару ключ-значение, если ключ не найден. Похож на defaultdict, но не требует импорт:
Программный код:
from collections import defaultdict
my_dict = defaultdict(list)
my_dict['key'].append('value')
print(dict(my_dict)) # Вывод: {'key': ['value']}
Thanks for explaining the difference with defaultdict. It makes sense now.Сообщение от TrollBridge