Метод update() — один из самых удобных инструментов для работы со словарями в Python. Он позволяет быстро обновить содержимое словаря данными из другого словаря или набора пар ключ-значение. При этом существующие ключи перезаписываются новыми значениями, а новые ключи добавляются в словарь. В этом тренажере ты разберёшься, как правильно вызывать update(), какие аргументы он принимает и что происходит при совпадении ключей. Также увидишь типичные ошибки и научишься их избегать. Задания идут от простых примеров к более хитрым ситуациям — так что не торопись и внимательно читай код.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Базовый вызов метода update()
Перед вами два словаря. Нужно обновить первый словарь данными из второго, используя соответствующий метод. Заполните пропуски так, чтобы код работал корректно.
user = {'name': 'Alex', 'age': 25}
extra = {'city': 'Moscow', 'job': 'developer'}
user.input1S(input2S)
print(user)Что выведет код после update()?
Внимательно изучите код. Словарь config обновляется данными из словаря new_settings. Определите, что будет выведено на экран.
config = {'theme': 'light', 'font_size': 12}
new_settings = {'language': 'ru'}
config.update(new_settings)
print(config['language'])Перезапись существующего ключа
В этом примере оба словаря содержат одинаковый ключ 'status'. Проанализируйте, какое значение окажется в итоговом словаре после вызова update().
order = {'id': 101, 'status': 'pending'}
update_data = {'status': 'shipped', 'tracking': 'ABC123'}
order.update(update_data)
print(order['status'])Обновление через именованные аргументы
Метод update() можно вызывать не только с другим словарём, но и с именованными аргументами (keyword arguments). Заполните пропуски, чтобы добавить в словарь product ключ 'price' со значением 999.
product = {'name': 'Laptop', 'brand': 'TechCorp'}
product.update(input1S=input2S)
print(product)Возвращаемое значение update()
Метод update() изменяет словарь на месте. Но что он возвращает? Изучите код и введите, что будет выведено на экран.
data = {'a': 1}
result = data.update({'b': 2})
print(result)Ошибка в цепочке вызовов
Программист попытался обновить словарь и сразу обратиться к нему по ключу в одной строке. Но код выдаёт ошибку. Найдите проблемную строку и исправьте её.
settings = {'volume': 50}new_val = settings.update({'volume': 75})['volume']print(new_val)Способы вызова update()
Метод update() можно вызывать несколькими способами. Сопоставьте каждый способ вызова с его описанием.
d.update(name='Alex', age=30)d.update({'x': 1, 'y': 2})d.update([('a', 1), ('b', 2)])Собери код из токенов
Используя элементы из банка, соберите код, который создаёт словарь с ключом 'a' и значением 1, а затем добавляет в него ключ 'b' со значением 2 с помощью метода update().
data = {input1S: input2S}
data.input3S({input4S: input5S})
print(data)Корректные и ошибочные вызовы update()
Распределите примеры кода по категориям: какие из них являются корректными вызовами метода update(), а какие приведут к ошибке.
d.update({'key': 'value'})d.update(name='Bob')d.update([('x', 10)])d.update('invalid')d.update(123)d.update(a=1, b=2)Собери программу с update()
Соберите программу, которая создаёт словарь с информацией о пользователе (имя 'guest'), затем обновляет его, меняя имя на 'admin' и добавляя роль 'superuser', и выводит итоговую роль. Одна строка лишняя.
print(user['role'])user.update({'name': 'admin', 'role': 'superuser'})user = {'name': 'guest'}print(user['name'])Множественные обновления
Словарь обновляется дважды подряд. Какое значение будет у ключа 'x' после выполнения кода? Введите число.
nums = {'x': 10, 'y': 20}
nums.update({'x': 50, 'z': 30})
nums.update({'x': 100})
print(nums['x'])update() со списком кортежей
В этом примере update() вызывается со списком кортежей вместо словаря. Что будет выведено на экран?
inventory = {}
items = [('apple', 5), ('banana', 3)]
inventory.update(items)
print(inventory)Ошибка в синтаксисе именованных аргументов
Программист хотел добавить в словарь ключ 'max-value' со значением 100, используя именованные аргументы. Но код не работает. Найдите и исправьте ошибку.
config = {'min-value': 0}config.update(max-value=100)print(config)Порядок операций со словарём
Расставьте строки кода в правильном порядке, чтобы программа: создала пустой словарь, добавила в него два ключа через update(), изменила значение одного из них, и вывела финальный результат.
print(scores)scores.update({'math': 95})scores = {}scores.update({'math': 85, 'english': 90})Подсчёт ключей после update()
После выполнения update() сколько ключей будет в словаре? Учтите, что некоторые ключи могут совпадать. Введите число.
info = {'a': 1, 'b': 2, 'c': 3}
info.update({'b': 20, 'd': 4, 'e': 5})
print(len(info))