🧩 Задача: неожиданный результат с изменением словаря
Что выведет следующий код?
def update_dict(d, key, value):
d[key] = value
return d
my_dict = {'a': 1, 'b': 2}
print(update_dict(my_dict, 'c', 3))
print(update_dict(my_dict, 'd', 4))
print(my_dict)
❓ Вопросы:
1. Какой будет вывод каждой из трёх строк?
2. Почему
my_dict
меняется после вызова функции?3. Как изменить функцию, чтобы оригинальный словарь не менялся, а возвращалась новая копия с обновлённым значением?
Подвох:
Решение:
def update_dict(d, key, value):
new_dict = d.copy()
new_dict[key] = value
return new_dict
Что проверяет задача:
Библиотека питониста #междусобойчик