Удалить ключ из словаря в Python, возвращая новый словарь

У меня есть словарь

d = {'a':1, 'b':2, 'c':3} 

Мне нужно удалить ключ, скажем c и вернуть словарь без этого ключа в один вызов функции

 {'a':1, 'b':2} 

d.pop ('c') вернет значение ключа – 3 – вместо словаря.

Мне понадобится одно функциональное решение, если оно существует, поскольку это пойдёт в понимание

3 Solutions collect form web for “Удалить ключ из словаря в Python, возвращая новый словарь”

Как насчет этого:

 {i:d[i] for i in d if i!='c'} 

Он называется « Словарные слова», и он доступен с Python 2.7.

или если вы используете Python старше 2.7:

 dict((i,d[i]) for i in d if i!='c') 

Почему бы вам не свернуть? Скорее всего, это будет быстрее, чем создание нового, использующего понимание словаря:

 def without(d, key): new_d = d.copy() new_d.pop(key) return new_d 

это будет работать,

 (lambda dict_,key_:dict_.pop(key_,True) and dict_)({1:1},1) 

EDIT это отбросит ключ, если он существует в словаре, и вернет словарь без пары ключ, значение

в python есть функции, которые изменяют объект на месте и возвращают значение вместо измененного объекта, например, функция {} .pop.

мы можем использовать лямбда-функцию, как в примере, или более общий ниже (lambda func: obj: (func (obj) и False) или obj) изменить это поведение и получить ожидаемое поведение.

  • Ссылки на mutables (например, списки) как значения в словарях Python - что лучше всего?
  • Возвращение словаря длины слова в строке
  • Употребление словаря преднамеренное или нет?
  • Объединение 2 списков диктонов на основе общих значений
  • Предоставление пользователям имени списка имен
  • Как объединить несколько dicts, суммируя значения общих ключей (и сохраняя значения со значением 0) в Python?
  • объединение значений для большого количества перекрывающихся интервалов словарных клавиш
  • Создайте список, используя определенные ключи в dict (python)?
  • python pandas dataframe для словаря
  • Группировка списков Python и сумма
  • словарь python и значения по умолчанию
  • Python - лучший язык программирования в мире.