Развёрнутое пояснение:
1. Кортеж regions задаёт два ключа: eu и us.
2. dict.fromkeys(regions, []) создаёт словарь, в котором оба ключа ссылаются на один и тот же пустой список.
3. append изменяет этот общий список, поэтому order-7 становится виден через оба ключа.
4. Выражение queues["us"] + ["order-8"] создаёт новый список, не изменяя исходный.
5. Присваивание связывает ключ us с новым списком, а eu сохраняет ссылку на прежний; поэтому вывод содержит order-7 у eu и оба заказа у us.
Почему это важно
Задача проверяет понимание общего изменяемого состояния и различия между изменением объекта и заменой ссылки. Такое поведение встречается при создании словарей очередей, групп и накопителей через dict.fromkeys.
Post #4907
110
Python: задачки и вопросы
- ✍ 1