У меня есть dict, в котором есть целая куча записей.Меня интересуют только некоторые из них.Есть ли простой способ удалить все остальные?
dict
Другой вариант:
content = dict(k1='foo', k2='nope', k3='bar') selection = ['k1', 'k3'] filtered = filter(lambda i: i[0] in selection, content.items())
Но вы получаете list (Python 2) или итератор (Python 3), возвращаемый filter(), а не dict.
list
filter()
Краткая форма:
[s.pop(k) for k in list(s.keys()) if k not in keep]
Как большинство ответов предлагают, чтобы сохранить краткость, мы должны создать дублированный объект, будь то list или dict,Этот создает одноразовый list, но удаляет ключи в оригинальном dict.