Пусть d1 = {'a': 1, 'b': 2} и d2 = {'b': 3, 'c': 4}. Что вернёт {**d1, **d2}?
AСловарь
{'a': 1, 'b': 2, 'b': 3, 'c': 4} с двумя записями по ключу 'b'BИсключение
KeyError из-за конфликта ключа 'b' при распаковке **CСловарь
{'a': 1, 'b': 3, 'c': 4}: значение из d2 перезаписало значение из d1DСловарь
{'a': 1, 'b': 2, 'c': 4}: значение ключа 'b' сохранилось из d1Правильный ответ. При распаковке
** совпадающие ключи перезаписываются значениями из более позднего словаря.Разбор
Выражение {**d1, **d2} создаёт новый словарь, последовательно распаковывая d1, затем d2. Ключ 'b' присутствует в обоих словарях: сначала записывается 'b': 2 из d1, затем перезаписывается на 'b': 3 из d2. Итог — {'a': 1, 'b': 3, 'c': 4}. Побеждает тот словарь, который распаковывается последним. Дубликат ключа здесь не вызывает KeyError: словарь не может содержать два одинаковых ключа.
Проверь себя · 1/3разбор после ответа
Пусть
t = (1, 2, 3). Что произойдёт при попытке выполнить t[0] = 10?Ещё вопросы по теме «Синтаксис и типы данных»
- Какой результат вернёт вызов `type(10)`?
- После выполнения `y = str(42)` чему равен `y` и какой у него тип?
- Какая проверка наиболее корректна и идиоматична, чтобы убедиться, что переменная `x` равна `None`?
- Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
- Что вернёт выражение `" Python ".strip()`?
- Все вопросы по «Синтаксис и типы данных» →