Я думаю, что второй пример - это то, что вы должны использовать, если этот код не имеет смысла:
try:
A["foo"] = B["foo"]
A["bar"] = B["bar"]
A["baz"] = B["baz"]
except KeyError:
pass
Имейте в виду, что код будет прерван, как только появится ключ, которого нет в B
. Если этот код имеет смысл, вам следует использовать метод исключения, в противном случае используйте метод test. По моему мнению, поскольку он короче и четко выражает намерение, его намного легче читать, чем метод исключения.
Конечно, люди, которые говорят вам использовать update
, правы. Если вы используете версию Python, которая поддерживает словарь, я бы настоятельно предпочел этот код:
updateset = {'foo', 'bar', 'baz'}
A.update({k: B[k] for k in updateset if k in B})