Что выведет код Junior Коллекции обновлено

Порядок ключей после перезаписи и удаления

Вопрос

Что выведет код? По строке на каждый print.

d = {'a': 1, 'b': 2, 'c': 3}
d['a'] = 10
del d['b']
d['b'] = 20
print(list(d))
print(d | {'a': 0})

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: ['a', 'c', 'b'], {'a': 0, 'c': 3, 'b': 20}. Перезапись значения не двигает ключ, поэтому a остаётся первым.

Что выведет

['a', 'c', 'b']
{'a': 0, 'c': 3, 'b': 20}

Разбор

Перезапись значения не двигает ключ, поэтому a остаётся первым. Удаление и повторная вставка b отправляют его в конец. Оператор | (3.9+) создаёт новый словарь: ключи левого в их порядке, значения правого побеждают, новые ключи правого добавляются в конец.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.