Присваивание по новому ключу добавляет пару, по существующему — перезаписывает. del падает на отсутствующем ключе, pop со вторым аргументом — нет.
Перебор словаря: keys, values, items
stock = {'coffee': 12, 'tea': 5}for name in stock: # keys print(name)for name, qty in stock.items(): print(name, qty) # coffee 12, tea 5
for по словарю идёт по ключам; пары «ключ, значение» даёт items(). Только значения — values().
Ключ в словаре: in
stock = {'coffee': 12, 'tea': 5}'coffee' in stock # True12 in stock # False, values do not countif 'tea' in stock: stock['tea'] += 1
in проверяет только ключи — значение 12 словарь «не видит». Паттерн if key in dict страхует доступ по скобкам от KeyError.
Словарное включение
prices = {'coffee': 199, 'tea': 99}sale = {n: p // 2 for n, p in prices.items()}# {'coffee': 99, 'tea': 49}cheap = {n: p for n, p in prices.items() if p < 150}# {'tea': 99}
Как списковое включение, но с парой ключ: значение слева. Удобно, например, перевернуть словарь: {v: k for k, v in d.items()}.
Мы используем cookies. Используем файлы cookie, включая Яндекс.Метрику, для работы сайта, аналитики и улучшения сервиса. Продолжая пользоваться сайтом, ты соглашаешься с нашей политикой конфиденциальности и политикой использования cookies.