Фильтр содержит только определенные ключи? - PullRequest
384 голосов
/ 06 августа 2010

У меня есть dict, в котором есть целая куча записей.Меня интересуют только некоторые из них.Есть ли простой способ удалить все остальные?

Ответы [ 12 ]

1 голос
/ 20 марта 2018

Другой вариант:

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.

1 голос
/ 10 октября 2017

Краткая форма:

[s.pop(k) for k in list(s.keys()) if k not in keep]

Как большинство ответов предлагают, чтобы сохранить краткость, мы должны создать дублированный объект, будь то list или dict,Этот создает одноразовый list, но удаляет ключи в оригинальном dict.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...