def intersection_update(self, E):
        """
        Update a DictSet with the intersection of itself and E.

        DS&=E  <==> DS.intersection_update(E)
        """        
        if not isinstance(E, DictSet):
            E = DictSet(copy(E))
        
        for k in set(self) | set(E):
            self.setdefault(k, [])
            self[k].intersection_update(E.get(k, []))
            if len(self[k]) == 0:
                del self[k]

        Update a DictSet with the intersection of itself and E.

        DS&=E  <==> DS.intersection_update(E)
        
recipes/Python/577702_DictSet__specialized_Pythcontainer_datatype/recipe-577702.py