Удаления значения из словаря при распаковке
В Пайтоне есть возможность, к примеру, скопировать словарь, параллельно добавляя в него новое значение прямо при распаковке:
>>> 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'}