Что выведет код 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 ошибок.