Развёрнутое пояснение:
1. Создаётся список levels с тремя строками.
2. dict.fromkeys(levels, []) строит словарь, в котором каждый ключ получает не свой список, а одну и ту же ссылку на один пустой список.
3. Обращение buckets['warn'] возвращает тот же общий список.
4. Метод append('disk full') изменяет этот единственный список.
5. print(buckets) выводит словарь, где под всеми тремя ключами лежит уже изменённый список.
Почему это важно: при группировке событий, логов или метрик по категориям часто пишут buckets = dict.fromkeys(groups, []), ожидая независимые корзины. В результате запись в одну категорию молча заражает все остальные, что даёт трудноуловимый баг в аналитике и обработке потоков данных.
Post #4815
289
Python: задачки и вопросы
- ✍ 1