Метод update()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Метод update() — один из самых удобных инструментов для работы со словарями в Python. Он позволяет быстро обновить содержимое словаря данными из другого словаря или набора пар ключ-значение. При этом существующие ключи перезаписываются новыми значениями, а новые ключи добавляются в словарь. В этом тренажере ты разберёшься, как правильно вызывать update(), какие аргументы он принимает и что происходит при совпадении ключей. Также увидишь типичные ошибки и научишься их избегать. Задания идут от простых примеров к более хитрым ситуациям — так что не торопись и внимательно читай код.

Список тем

Базовый вызов метода update()

id: 40024_task1

Перед вами два словаря. Нужно обновить первый словарь данными из второго, используя соответствующий метод. Заполните пропуски так, чтобы код работал корректно.

Заполните пропуски
user = {'name': 'Alex', 'age': 25}
extra = {'city': 'Moscow', 'job': 'developer'}

user.input1S(input2S)

print(user)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет код после update()?

id: 40024_task2

Внимательно изучите код. Словарь config обновляется данными из словаря new_settings. Определите, что будет выведено на экран.

Выберите правильный вариант ответа
config = {'theme': 'light', 'font_size': 12}
new_settings = {'language': 'ru'}

config.update(new_settings)
print(config['language'])
Сообщения
Проверить
Показать подсказку

Перезапись существующего ключа

id: 40024_task3

В этом примере оба словаря содержат одинаковый ключ 'status'. Проанализируйте, какое значение окажется в итоговом словаре после вызова update().

Выберите правильный вариант ответа
order = {'id': 101, 'status': 'pending'}
update_data = {'status': 'shipped', 'tracking': 'ABC123'}

order.update(update_data)
print(order['status'])
Сообщения
Проверить
Показать подсказку

Обновление через именованные аргументы

id: 40024_task4

Метод update() можно вызывать не только с другим словарём, но и с именованными аргументами (keyword arguments). Заполните пропуски, чтобы добавить в словарь product ключ 'price' со значением 999.

Заполните пропуски
product = {'name': 'Laptop', 'brand': 'TechCorp'}

product.update(input1S=input2S)

print(product)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Возвращаемое значение update()

id: 40024_task5

Метод update() изменяет словарь на месте. Но что он возвращает? Изучите код и введите, что будет выведено на экран.

Что должно получиться?
data = {'a': 1}
result = data.update({'b': 2})
print(result)
Сообщения
Проверить
Показать подсказку

Ошибка в цепочке вызовов

id: 40024_task6

Программист попытался обновить словарь и сразу обратиться к нему по ключу в одной строке. Но код выдаёт ошибку. Найдите проблемную строку и исправьте её.

Найдите ошибку и исправьте
settings = {'volume': 50}
new_val = settings.update({'volume': 75})['volume']
print(new_val)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Способы вызова update()

id: 40024_task7

Метод update() можно вызывать несколькими способами. Сопоставьте каждый способ вызова с его описанием.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Передаём другой словарь целиком
Передаём список кортежей (пар)
Используем именованные аргументы
d.update(name='Alex', age=30)
d.update({'x': 1, 'y': 2})
d.update([('a', 1), ('b', 2)])
Сообщения
Проверить
Показать подсказку

Собери код из токенов

id: 40024_task8

Используя элементы из банка, соберите код, который создаёт словарь с ключом 'a' и значением 1, а затем добавляет в него ключ 'b' со значением 2 с помощью метода update().

Нужно правильно расставить в пропуски предложенные варианты
data = {input1S: input2S}
data.input3S({input4S: input5S})
print(data)
'a'
'b'
1
2
update
append
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Корректные и ошибочные вызовы update()

id: 40024_task9

Распределите примеры кода по категориям: какие из них являются корректными вызовами метода 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()

id: 40024_task10

Соберите программу, которая создаёт словарь с информацией о пользователе (имя 'guest'), затем обновляет его, меняя имя на 'admin' и добавляя роль 'superuser', и выводит итоговую роль. Одна строка лишняя.

Перетяните в правильном порядке строки из одного блока в другой
print(user['role'])
user.update({'name': 'admin', 'role': 'superuser'})
user = {'name': 'guest'}
print(user['name'])
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Множественные обновления

id: 40024_task11

Словарь обновляется дважды подряд. Какое значение будет у ключа 'x' после выполнения кода? Введите число.

Что должно получиться?
nums = {'x': 10, 'y': 20}
nums.update({'x': 50, 'z': 30})
nums.update({'x': 100})
print(nums['x'])
Сообщения
Проверить
Показать подсказку

update() со списком кортежей

id: 40024_task12

В этом примере update() вызывается со списком кортежей вместо словаря. Что будет выведено на экран?

Выберите правильный вариант ответа
inventory = {}
items = [('apple', 5), ('banana', 3)]
inventory.update(items)
print(inventory)
Сообщения
Проверить
Показать подсказку

Ошибка в синтаксисе именованных аргументов

id: 40024_task13

Программист хотел добавить в словарь ключ 'max-value' со значением 100, используя именованные аргументы. Но код не работает. Найдите и исправьте ошибку.

Найдите ошибку и исправьте
config = {'min-value': 0}
config.update(max-value=100)
print(config)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Порядок операций со словарём

id: 40024_task14

Расставьте строки кода в правильном порядке, чтобы программа: создала пустой словарь, добавила в него два ключа через update(), изменила значение одного из них, и вывела финальный результат.

Расставьте строки в правильном порядке
print(scores)
scores.update({'math': 95})
scores = {}
scores.update({'math': 85, 'english': 90})
Сообщения
Проверить
Показать подсказку

Подсчёт ключей после update()

id: 40024_task15

После выполнения update() сколько ключей будет в словаре? Учтите, что некоторые ключи могут совпадать. Введите число.

Что должно получиться?
info = {'a': 1, 'b': 2, 'c': 3}
info.update({'b': 20, 'd': 4, 'e': 5})
print(len(info))
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру