Простой пример: представьте, что у вас есть физическая телефонная книга и вы хотите найти в ней друзей или семью. Эквивалент в Python будет выглядеть следующим образом:
phone_book = { "Mom": "123-456-7890",
"Dad": "123-456-7891",
"John Doe": "555-555-5555", # and so on...
}
Если вы пытаетесь найти номер телефона своего отца в своей физической телефонной книге, вы можете сделать это, перейдя непосредственно на страницу, которую вы написали. и найти запись. Точно так же поиск в словаре Python такой же:
print(phone_book['Dad']) # 123-456-7891
Теперь, когда пример из реального мира довольно ясен, посмотрите на свой пример. Через .items()
вы получаете пару значений ключа, где user
- это просто ключ для ссылки на указанное значение c в словаре users
(например, «Мама» или «Папа»), а status
- это значение сопоставляется с этим указанным c user
(как и их номера телефонов).
Однако вы берете копию словаря users
, чтобы вы могли выполнять итерацию по всей паре от users
до statuses
. Если бы у вас было
for user, status in users.items():
del[user]
, вы бы изменили словарь, который вы пытаетесь повторить, и получили бы ошибку. Чтобы избежать этого, вы делаете его временную копию для повторения и удаления фактического user
из users
(подумайте «Удалить маму из вашей телефонной книги»).
Во втором фрагменте, вы добавляете людей в словарь активного пользователя. Подумайте «Добавить Билли в телефонную книгу с номером телефона« 111-222-3344 », но в этом случае вы добавляете user
и их соответствующие status
.
TLDR: словарь просто способ искать вещи, но чтобы что-то искать, вам нужно знать их идентификатор (name
в телефонной книге, user
в словаре пользователя). Если вы хотите что-то сделать со значением этого идентификатора (number
в телефонной книге, status
в пользовательском словаре), вы хотите временно сохранить его, пока не закончите.