Удаления значения из словаря при распаковке

В Пайтоне есть возможность, к примеру, скопировать словарь, параллельно добавляя в него новое значение прямо при распаковке:

>>> date_info = {'year': '2020', 'month': '01', 'day': '7'}
>>> event_info = {**date_info, 'group': "Python Meetup"}
>>> event_info
{'year': '2020', 'month': '01', 'day': '7', 'group': 'Python Meetup'}

Можно отредактировать уже имеющиеся значения аналогичным образом:

>>> event_info = {'year': '2020', 'month': '01', 'day': '7', 'group': 'Python Meetup'}
>>> new_info = {**event_info, 'day': "14"}
>>> new_info
{'year': '2020', 'month': '01', 'day': '14', 'group': 'Python Meetup'}

Вопрос в следующем: можно ли исключить одну пару значений из словаря при его распаковке. Например, распаковывая event_info в new_info, как в примере выше, получить на выходе значения event_info за исключением 'group': 'Python Meetup'. Нужен сходный про краткости и удобности способ.


Ответы (1 шт):

Автор решения: Roman Konoval

Можно воспользоваться dict compehensions

>>> {k: v for k, v in event_info.iteritems() if k != 'group'}
{'year': '2020', 'day': '7', 'month': '01'}
→ Ссылка