В версии 2.4 я всегда использую операции над множествами для таких целей.Если это стоит предупреждения (или другого вида сообщения или исключения), когда некоторые ожидаемые ключи отсутствуют, в частности, я делаю:
missing = set(d).difference(('a', 'b', 'c'))
if missing:
logging.warn("Missing keys: %s", ', '.join(sorted(missing)))
else:
...
заменяя вызов logging.warn
соответствующим образом, конечно (возможно, простоlogging.info или даже logging.debug, возможно, logging.error, может быть, исключение.
Часть sorted
в основном косметическая (мне нравятся надежные, повторяющиеся сообщения об ошибках), но также помогает при тестировании (когда я тестирую logging.warn - или что-то еще - в тестах, приятно иметь возможность ожидать конкретную строку, и если я не отсортировал missing
, строка предупреждения, конечно, может отличаться, так каксеты, как и у диктовок, не имеют понятия порядка).