python: найти только общие пары ключ-значение нескольких словарей: пересечение dict

У меня есть 0 или более словарей в списке:

>>> dicts = [dict(a=3, b=89, d=2), dict(a=3, b=89, c=99), dict(a=3, b=42, c=33)]

Я хочу создать новый словарь, содержащий только ключи, которые есть во всех всехвышеперечисленных dicts, и только если все значения одинаковы:

>>> dict_intersection(*dicts)
{"a": 3}

Я чувствую, что должен быть элегантныйспособ написания dict_intersection, но я придумываю только неэлегантные и /или неэффективные решения сам. Предложения?

13
задан Lauritz V. Thaulow 28 March 2012 в 11:53
поделиться