Иногда условие, что все значения уникальны, не выполняется, и в этом случае ответы выше уничтожат любые дублирующиеся значения.
Следующее сворачивает значения, которые могут быть дубликатами, в список:
from itertools import count
dict([(a,[list(d.keys())[i] for i,j in zip(count(), d.values())if j==a in set(d.values())])
Я уверен, что есть лучший метод (не из списка), но у меня возникла проблема с более ранними ответами, поэтому я подумал, что я предоставлю свое решение на случай, если другие будут использовать подобное-дело.
PS Не ожидайте, что дикт будет оставаться аккуратно сложенным после любых изменений в оригинале!Этот метод используется только один раз при статическом диктанте - вы были предупреждены!