Развёрнутое пояснение
1️⃣Создаётся словарь prices с единственной парой ключ-значение tea: 100.
2️⃣Вызов prices.keys() возвращает специальный объект представления dict_keys, который динамически связан со словарём и отражает его текущее состояние.
3️⃣При добавлении нового ключа coffee со значением 200 представление сразу видит изменения в живом словаре.
4️⃣list(names) превращает представление в список в момент вызова, а вызывается он уже после добавления coffee, когда в словаре два ключа. Порядок ключей — порядок вставки, он гарантирован с Python 3.7.
5️⃣На экран выводится итоговый список ['tea', 'coffee'].
Почему это важно
Если нужен снимок ключей на текущий момент, сохраняйте его сразу: list(prices). А добавлять или удалять ключи прямо во время обхода for k in prices.keys() нельзя: Python выбросит RuntimeError: dictionary changed size during iteration.
Post #4917
227
- ✍ 1