Удалить None значения из Python dict - PullRequest
9 голосов
/ 26 августа 2009

Новичок в Python, так что это может показаться глупым.

У меня есть два дикта:

default = {'a': 'alpha', 'b': 'beta', 'g': 'Gamma'}
user = {'a': 'NewAlpha', 'b': None}

Мне нужно обновить мои значения по умолчанию значениями, которые существуют у пользователя. Но только для тех, которые имеют значение, не равное None. Поэтому мне нужно вернуть новый диктант:

result = {'a': 'NewAlpha', 'b': 'beta', 'g': 'Gamma'}

Ответы [ 2 ]

19 голосов
/ 26 августа 2009
result = default.copy()
result.update((k, v) for k, v in user.iteritems() if v is not None)
7 голосов
/ 26 августа 2009

С помощью метода update() и некоторого выражения генератора:

D.update((k, v) for k, v in user.iteritems() if v is not None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...