Кажется разумным полагать, что dict.pop работает атомарно, так как он поднимает KeyError, если указанный ключ отсутствует, и по умолчанию предоставляется так:
d.pop(k)
Однако в документации не указано, что конкретно адресовано эта точка, по крайней мере, в разделе, специально не документирующем dict.pop.
Этот вопрос возник у меня, когда я рассматривал мой ответ, который использовал этот шаблон:
if k in d: del d[k]
В то время я не думал о потенциальном условии, что ключ может присутствовать во время if, но не во время del. Если dict.pop действительно предоставляет атомную альтернативу, я должен отметить это в своем ответе.